summaryrefslogtreecommitdiff
path: root/t/05_authentication.t
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-06-03 10:01:01 +0200
committerfranck cuny <franck@lumberjaph.net>2010-06-03 10:01:01 +0200
commit3da11a8153d3b42af2f2a250008be6cc52e57b09 (patch)
tree4da02b541e9f8d35e5f20d63908cd33fe64dc7f8 /t/05_authentication.t
parentreplace remainging with nothing (diff)
parentfix attribute declaration (diff)
downloadmoosex-net-api-3da11a8153d3b42af2f2a250008be6cc52e57b09.tar.gz
merge
Diffstat (limited to 't/05_authentication.t')
-rw-r--r--t/05_authentication.t67
1 files changed, 67 insertions, 0 deletions
diff --git a/t/05_authentication.t b/t/05_authentication.t
new file mode 100644
index 0000000..e769a53
--- /dev/null
+++ b/t/05_authentication.t
@@ -0,0 +1,67 @@
+use strict;
+use warnings;
+use Test::More;
+
+package test::auth;
+use MooseX::Net::API;
+
+net_api_declare fake_auth => (
+ api_base_url => 'http://localhost',
+ format => 'json',
+ authentication => 1,
+ authentication_method => 'my_auth',
+);
+
+net_api_method user => (
+ method => 'GET',
+ path => '/user/',
+);
+
+sub my_auth {
+ my ($self, $request, $ua, $h) = @_;
+ $request->header('Authentication' => 1);
+}
+
+package test::auth::simple;
+use MooseX::Net::API;
+
+net_api_declare fake_auth => (
+ api_base_url => 'http://localhost',
+ format => 'json',
+ authentication => 1,
+);
+
+net_api_method user => (
+ method => 'GET',
+ path => '/user/',
+);
+
+package main;
+
+ok my $api = test::auth->new, 'object api created';
+$api->api_useragent->add_handler(
+ request_send => sub {
+ my $request = shift;
+ is $request->header('Authentication'), 1, 'authentication header is set';
+ my $res = HTTP::Response->new(200);
+ $res->content('[{"name":"eris"}]');
+ $res;
+ }
+);
+ok $api->user, 'method user success';
+
+ok $api =
+ test::auth::simple->new(api_username => 'foo', api_password => 'bar'),
+ 'object api simple created';
+$api->api_useragent->add_handler(
+ request_send => sub {
+ my $request = shift;
+ ok $request->header('authorization'), 'authentication header is set';
+ my $res = HTTP::Response->new(200);
+ $res->content('[{"name":"eris"}]');
+ $res;
+ }
+);
+ok $api->user, 'method user success';
+
+done_testing;