summaryrefslogtreecommitdiff
path: root/t/05_authentication.t
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-06-02 18:57:29 +0200
committerfranck cuny <franck@lumberjaph.net>2010-06-02 18:57:29 +0200
commit856c715612f3de54ebc51f348ace42a805b2e31d (patch)
tree6604b1bfb2050c5a3f5a9227228081e3a707ca40 /t/05_authentication.t
parenthandle authentication (diff)
downloadnet-http-api-856c715612f3de54ebc51f348ace42a805b2e31d.tar.gz
update tests
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;