Pithub
view release on metacpan or search on metacpan
#!perl
use strict;
use warnings;
use JSON::MaybeXS qw( JSON );
use MIME::Base64 ();
use Pithub::Orgs ();
use Test::Differences qw( eq_or_diff );
use Test::Exception; # throws_ok
use Test::More import => [qw( done_testing fail is isa_ok ok )];
use lib 't/lib';
use Pithub::Test::Factory ();
# Pithub::Orgs->get
{
my $obj = Pithub::Test::Factory->create(
'Pithub::Orgs', user => 'foo',
repo => 'bar'
);
isa_ok $obj, 'Pithub::Orgs';
throws_ok { $obj->get } qr{Missing key in parameters: org},
'No parameters';
{
my $result = $obj->get( org => 'some-org' );
is $result->request->method, 'GET', 'HTTP method';
is $result->request->uri->path, '/orgs/some-org', 'HTTP path';
my $http_request = $result->request;
is $http_request->content, q{}, 'HTTP body';
}
}
# Pithub::Orgs->list
{
my $obj = Pithub::Test::Factory->create(
'Pithub::Orgs', user => 'foo',
repo => 'bar'
);
isa_ok $obj, 'Pithub::Orgs';
{
my $result = $obj->list( user => 'foo' );
is $result->request->method, 'GET', 'HTTP method';
is $result->request->uri->path, '/users/foo/orgs', 'HTTP path';
my $http_request = $result->request;
is $http_request->content, q{}, 'HTTP body';
}
{
throws_ok { $obj->list }
qr{Access token required for: GET /user/orgs}, 'Token required';
ok $obj->token(123), 'Token set';
my $result = $obj->list;
is $result->request->method, 'GET', 'HTTP method';
is $result->request->uri->path, '/user/orgs', 'HTTP path';
my $http_request = $result->request;
is $http_request->content, q{}, 'HTTP body';
}
{
# Check if prepare_request is able to add a authorization header to
# satisfy has_token
$obj->clear_token;
throws_ok { $obj->list }
qr{Access token required for: GET /user/orgs}, 'Token required';
( run in 0.761 second using v1.01-cache-2.11-cpan-39bf76dae61 )