diff options
author | Brian Phillips <bphillips@cpan.org> | 2012-12-04 22:53:27 -0600 |
---|---|---|
committer | Ash Berlin <ash_github@firemirror.com> | 2013-04-18 14:48:30 +0100 |
commit | 55f68bf78836700f664fd44cfedcee537627ac4e (patch) | |
tree | 62d75475dfc0495f843b4a9dd1903cd212b12bf0 /t/spore-middleware | |
parent | Changes entry for adding PATCH support (Closes #13) (diff) | |
download | net-http-spore-55f68bf78836700f664fd44cfedcee537627ac4e.tar.gz |
support for anonymous middlewares
Diffstat (limited to '')
-rw-r--r-- | t/spore-middleware/anonymous.t | 55 |
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; |