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;