summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/spore-role/basic.t46
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';