Finance-Bank-IE
view release on metacpan or search on metacpan
Test::MockBank->globalstate( 'loggedin', 0 );
ok( Finance::Bank::IE::PTSB->funds_transfer( $testaccount->nick, $testbeneficiary->nick, 1 ), "cached config (funds_transfer)" );
ok( Finance::Bank::IE::PTSB->funds_transfer( $testaccount, $testbeneficiary->nick, 1 ), "funds_transfer accepts an Account object as a source" );
ok( Finance::Bank::IE::PTSB->funds_transfer( $testaccount, $testbeneficiary, 1 ), "funds_transfer accepts an Account object as a destination" );
ok( !Finance::Bank::IE::PTSB->funds_transfer( $testaccount, "bogus", 1 ),
"funds_transfer fails to transfer to account not in beneficiaries list" );
SKIP: {
skip "no ambiguous beneficiaries", 1 unless $ambiguousbeneficiary;
ok( !Finance::Bank::IE::PTSB->funds_transfer( $testaccount, $ambiguousbeneficiary, 1 ), "funds_transfer fails if destination is ambiguous" );
}
my $actual_funds_transfer_tests = $test_builder->current_test() - $first_funds_transfer_test;
if ( $actual_funds_transfer_tests != $FUNDS_TRANSFER_TESTS ) {
die "\$FUNDS_TRANSFER_TESTS needs to be updated to $actual_funds_transfer_tests\n";
}
}
# test use of cached config (and first make sure we /have/ cached config)
Test::MockBank->globalstate( 'loggedin', 0 );
( @details ) = Finance::Bank::IE::PTSB->account_details( $testaccount->account_no, $config );
Test::MockBank->globalstate( 'loggedin', 0 );
( @details ) = Finance::Bank::IE::PTSB->account_details( $testaccount->account_no );
ok( @details, "cached config (account_details)" );
Test::MockBank->globalstate( 'loggedin', 0 );
@accounts = Finance::Bank::IE::PTSB->check_balance();
ok( @accounts, "cached config (check_balance)" );
Test::MockBank->globalstate( 'loggedin', 0 );
$beneficiaries = Finance::Bank::IE::PTSB->list_beneficiaries( $testaccount );
ok( $beneficiaries, "cached config (list beneficiaries)" );
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
( @details ) = Finance::Bank::IE::PTSB->account_details( $testaccount->account_no, $config );
ok( @details, "can fetch details directly" );
# _scrub_page
{
local $/ = undef;
open( my $unscrubbed, "<", "data/PTSB/unscrubbed" );
my $content = <$unscrubbed>;
my $scrubbed = Finance::Bank::IE::PTSB->_scrub_page( $content );
# checking if it really is scrubbed is performed in scrubbed.t
ok( $scrubbed, "_scrub_page" );
}
SKIP:
{
skip "these tests don't work against the live site", 3 if $live;
# some failure scenarios
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
# if we get a page failure, it should trip up the code but not
# cause it to crash
Test::MockBank->fail_on_iterations( 1 );
@accounts = Finance::Bank::IE::PTSB->check_balance( $config );
ok( !@accounts, "can handle page-load failure (check_balance)" );
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
Test::MockBank->fail_on_iterations( 1 );
( @details ) = Finance::Bank::IE::PTSB->account_details( $testaccount, $config );
ok( !@details, "can handle page-load failure (account_detail)" );
# this checks the _third_party code as well
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
Test::MockBank->fail_on_iterations( 5 );
$beneficiaries = Finance::Bank::IE::PTSB->list_beneficiaries( $testaccount,
$config );
ok( !$beneficiaries, "can handle page-load failure (list_beneficiaries 1)")
or diag Dumper($beneficiaries);
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
Test::MockBank->fail_on_iterations( 6 );
$beneficiaries = Finance::Bank::IE::PTSB->list_beneficiaries( $testaccount,
$config );
ok( !$beneficiaries, "can handle page-load failure (list_beneficiaries 2)");
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
Test::MockBank->fail_on_iterations( 5 );
$beneficiary_add = Finance::Bank::IE::PTSB->add_beneficiary( $testaccount, @new_beneficiary, $config );
ok( !$beneficiary_add, "can handle page-load failure (add_beneficiary)");
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
Test::MockBank->fail_on_iterations( 7 );
$beneficiary_add = Finance::Bank::IE::PTSB->add_beneficiary( $testaccount, @new_beneficiary, $config );
ok( !$beneficiary_add, "can handle page-load failure (add_beneficiary 2)");
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
Test::MockBank->fail_on_iterations( 8 );
$beneficiary_add = Finance::Bank::IE::PTSB->add_beneficiary( $testaccount, @new_beneficiary, $config );
ok( !$beneficiary_add, "can handle page-load failure (add_beneficiary 2)");
Finance::Bank::IE::PTSB->reset and
Test::MockBank->globalstate( 'loggedin', 0 );
Test::MockBank->fail_on_iterations( 9 );
$beneficiary_add = Finance::Bank::IE::PTSB->add_beneficiary( $testaccount, @new_beneficiary, $config );
ok( !$beneficiary_add, "can handle page-load failure (add_beneficiary 2)");
# looping login page
Test::MockBank->fail_on_iterations( 0 );
Test::MockBank->globalstate( 'loggedin', 0 );
Test::MockBank->globalstate( 'loop', 1 );
@accounts = Finance::Bank::IE::PTSB->check_balance( $config );
ok( !@accounts, "can handle looping login page" );
Test::MockBank->globalstate( 'loop', 0 );
}
# utterly bogus URL (mainly for coverage)
Test::MockBank->globalstate( 'loggedin', 0 );
my $return = Finance::Bank::IE::PTSB->_get( 'breakit', $config );
ok( !defined( $return ), "bogus url" ) or diag "expected undef, got $return";
$return = Finance::Bank::IE::PTSB->_get( 'breakit' );
ok( !defined( $return ), "bogus url" ) or diag "expected undef, got $return";
( run in 1.007 second using v1.01-cache-2.11-cpan-d7f47b0818f )