diff options
Diffstat (limited to 't')
-rw-r--r-- | t/spore-role/basic.t | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/t/spore-role/basic.t b/t/spore-role/basic.t new file mode 100644 index 0000000..7b73875 --- /dev/null +++ b/t/spore-role/basic.t @@ -0,0 +1,46 @@ +use strict; +use warnings; + +use Test::More; +use JSON; + +plan tests => 5; + +my $conf = { + 'twitter' => { + spec => 't/specs/api.json', + options => { base_url => 'http://localhost/', }, + middlewares => [ { name => 'Format::JSON' } ], + } +}; + +{ + + package my::app; + use Moose; + with 'Net::HTTP::Spore::Role' => { + spore_clients => [ + { name => 'twitter', config => 'twitter_config' } + ] + }; +} + +my $mock_server = { + '/show' => sub { + my $req = shift; + $req->new_response( + 200, + [ 'Content-Type' => 'application/json' ], + JSON::encode_json({status => 'ok'}) + ); + }, +}; + +ok my $app = my::app->new( twitter_config => $conf->{twitter} ); +is_deeply $app->twitter_config, $conf->{twitter}; + +$app->twitter->enable('Mock', tests => $mock_server); +my $res = $app->twitter->get_info(); +is $res->[0], 200; +is_deeply $res->[2], {status => 'ok'}; +is $res->header('Content-Type'), 'application/json'; |