From 55f68bf78836700f664fd44cfedcee537627ac4e Mon Sep 17 00:00:00 2001 From: Brian Phillips Date: Tue, 4 Dec 2012 22:53:27 -0600 Subject: support for anonymous middlewares --- t/spore-middleware/anonymous.t | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 t/spore-middleware/anonymous.t (limited to 't/spore-middleware/anonymous.t') 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; -- cgit 1.4.1