Pithub

 view release on metacpan or  search on metacpan

t/orgs.t  view on Meta::CPAN

#!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 )