Business-GoCardless
view release on metacpan or search on metacpan
t/business/gocardless.t view on Meta::CPAN
note( "Merchant" );
$mock->mock( 'content',sub { _merchant_json() } );
cmp_deeply(
my $Merchant = $GoCardless->merchant,
_merchant_obj(),
'->merchant returns a Business::GoCardless::Merchant object',
);
my $i = 0;
$mock->mock(
'content',
sub {
# first time return a merchant object, next time a list of pre_auths
$i++
? _payouts_json()
: _merchant_json()
}
);
my @payouts = $GoCardless->payouts;
cmp_deeply(
\@payouts,
[ _payout_obj( { 'app_ids' => [ 'ABC' ] } ) ],
'->payouts returns an array of Business::GoCardless::Payout objects'
);
}
sub test_payout {
my ( $GoCardless,$mock ) = @_;
note( "Payout" );
$mock->mock( 'content',sub { '{"payouts":'._payout_json() .'}' } );
my $Payout = $GoCardless->payout( '0BKR1AZNJF' );
cmp_deeply(
$Payout,
_payout_obj(),
'->payout returns a Business::GoCardless::Payout object'
);
}
sub test_pre_authorization {
my ( $GoCardless,$mock ) = @_;
note( "PreAuthorization" );
like(
my $new_pre_auth_url = $GoCardless->new_pre_authorization_url(
max_amount => 100,
interval_length => 10,
interval_unit => 'day',
expires_at => '2020-01-01',
name => "Test PreAuthorization",
description => "Test PreAuthorization for testing",
interval_count => 10,
setup_fee => 500,
calendar_intervals => 0,
redirect_uri => "http://localhost/success",
cancel_uri => "http://localhost/cancel",
state => "id_9SX5G36",
user => {
first_name => "Lee",
}
),
qr!https://gocardless\.com/connect/pre_authorizations/new\?cancel_uri=http%3A%2F%2Flocalhost%2Fcancel&client_id=foo&nonce=.*?&pre_authorization%5Bcalendar_intervals%5D=0&pre_authorization%5Bdescription%5D=Test%20PreAuthorization%20for%20testi...
'->new_pre_authorization_url returns a url'
);
$mock->mock( 'content',sub { _pre_auth_json() } );
cmp_deeply(
my $PreAuthorization = $GoCardless->confirm_resource(
resource_id => 'foo',
resource_type => 'pre_authorization',
),
_pre_auth_obj(),
'->confirm_resource returns a Business::GoCardless::PreAuthorization object'
);
$mock->mock( 'content',sub { _bill_json() } );
my $Bill = $PreAuthorization->bill( amount => 10 );
cmp_deeply(
$Bill,
_bill_obj(),
'->bill returns a Business::GoCardless::Bill object'
);
my $i = 0;
$mock->mock(
'content',
sub {
# first time return a merchant object, next time a list of pre_auths
$i++
? '[' . _pre_auth_json() . ',' . _pre_auth_json() . ']'
: _merchant_json()
}
);
my @pre_auths = $GoCardless->pre_authorizations;
cmp_deeply(
\@pre_auths,
[ _pre_auth_obj(),_pre_auth_obj() ],
'->pre_authorizations returns an array of Business::GoCardless::PreAuthorization objects'
);
$mock->mock( 'content',sub { _pre_auth_json() } );
$PreAuthorization = $GoCardless->pre_authorization( '123ABCD' );
cmp_deeply(
$PreAuthorization,
_pre_auth_obj(),
'->pre_authorization returns a Business::GoCardless::PreAuthorization object'
);
$mock->mock( 'content',sub { _pre_auth_json( 'cancelled' ) } );
cmp_deeply(
$PreAuthorization = $PreAuthorization->cancel,
_pre_auth_obj( 'cancelled' ),
'->cancel returns a Business::GoCardless::PreAuthorization object'
);
ok( $PreAuthorization->cancelled,'pre_authorization is cancelled' );
( run in 0.802 second using v1.01-cache-2.11-cpan-800906f7e73 )