Business-Fixflo
view release on metacpan or search on metacpan
t/002_end_to_end.t view on Meta::CPAN
#!perl
use strict;
use warnings;
use Test::Most;
use Test::Deep;
use Test::Exception;
use lib 'lib';
use Business::Fixflo;
use Business::Fixflo::Agency;
plan skip_all => "FIXFLO_ENDTOEND required"
if ! $ENV{FIXFLO_ENDTOEND};
# this is an "end to end" test - it will call the fixflo API
# using the details defined in the ENV variables below. you
# will need at least one issue (with a photo uploaded) and
# one agency for this test to pass
my ( $username,$password,$api_key,$domain,$tp_username,$tp_password,$tp_url,$server,$scheme,$url )
= @ENV{qw/
FIXFLO_USERNAME
FIXFLO_PASSWORD
FIXFLO_API_KEY
FIXFLO_CUSTOM_DOMAIN
FIXFLO_3RD_PARTY_USERNAME
FIXFLO_3RD_PARTY_PASSWORD
FIXFLO_3RD_PARTY_URL
FIXFLO_TEST_SERVER
FIXFLO_URL_SCHEME
FIXFLO_URL
/};
$url //= "https://$domain.$server";
my $ff = Business::Fixflo->new(
api_key => $api_key,
username => $username,
password => $password,
custom_domain => $domain,
url_suffix => $server ? $server : 'fixflo.com',
url_scheme => $scheme ? $scheme : 'https',
);
isa_ok(
my $issues = $ff->issues,
'Business::Fixflo::Paginator',
'->issues'
);
cmp_deeply(
$issues,
bless({
'total_items' => ignore(),
'total_pages' => ignore(),
'class' => 'Business::Fixflo::Issue',
'client' => ignore(),
'links' => {
'next' => ignore(),
'previous' => ignore(),
},
'objects' => ignore(),
},'Business::Fixflo::Paginator' ),
'->issues'
);
cmp_deeply(
$issues->objects->[0],
methods(
'client' => ignore(),
'url' => re( "$url/api/v2/[iI]ssue/[^/]+" ),
),
' ... ->objects'
);
isa_ok(
my $issue = $issues->objects->[0]->get,
'Business::Fixflo::Issue',
( run in 1.434 second using v1.01-cache-2.11-cpan-b16cb0d3907 )