summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorBrian Phillips <bphillips@cpan.org>2012-12-04 22:53:27 -0600
committerAsh Berlin <ash_github@firemirror.com>2013-04-18 14:48:30 +0100
commit55f68bf78836700f664fd44cfedcee537627ac4e (patch)
tree62d75475dfc0495f843b4a9dd1903cd212b12bf0 /t
parentChanges entry for adding PATCH support (Closes #13) (diff)
downloadnet-http-spore-55f68bf78836700f664fd44cfedcee537627ac4e.tar.gz
support for anonymous middlewares
Diffstat (limited to 't')
-rw-r--r--t/spore-middleware/anonymous.t55
1 files changed, 55 insertions, 0 deletions
diff --git a/t/spore-middleware/anonymous.t b/t/spore-middleware/anonymous.t
new file mode 100644
index 0000000..30039c8
--- /dev/null
+++ b/t/spore-middleware/anonymous.t
@@ -0,0 +1,55 @@
+use strict;
+use warnings;
+use Test::More;
+
+plan tests => 4;
+
+use JSON;
+
+use Net::HTTP::Spore;
+
+my $content = { keys => [qw/1 2 3/] };
+
+my $mock_server = {
+ '/api/show' => sub {
+ my $req = shift;
+ $req->new_response(
+ 200,
+ [ 'Content-Type' => 'application/json' ],
+ JSON::encode_json($content),
+ );
+ },
+};
+
+my $api = {
+ base_url => 'http://services.org/api',
+ methods => {
+ 'show' => {
+ path => '/show',
+ method => 'GET',
+ }
+ }
+};
+
+ok my $client = Net::HTTP::Spore->new_from_string( JSON::encode_json($api) );
+
+my $request_middleware = 0;
+my $response_middleware = 0;
+$client->enable(
+ sub {
+ $request_middleware++;
+ return sub {
+ ok $request_middleware, 'request middleware called';
+ ok $response_middleware, 'response middleware called';
+ }
+ }
+);
+$client->enable(
+ sub {
+ ok !$response_middleware, 'response not called yet';
+ return sub { $response_middleware++ }
+ }
+);
+# use Devel::SimpleTrace;
+$client->enable( 'Mock', tests => $mock_server );
+$client->show;