#!/usr/bin/perl -w
use strict;
use lib 't/lib';
use Carp;
use Test::More tests => 15;
use Test::Exception;
use Mock::NatwestWebServer;
my $nws = Mock::NatwestWebServer->new();
use_ok( 'Finance::Bank::Natwest::Connection' );
for ( {},
{ credentials => 'Constant' },
{ credentials => 'UnknownCP' },
{ credentials => 'UnknownCP', credentials_options => {} },
{ credentials => bless {}, 'YetAnotherUnknownCP' },
{ credentials => {} },
{ credentials_options => {} } ) {
dies_ok {
my $nwb = Finance::Bank::Natwest::Connection->new(%{$_});
} 'invalid credential parameters: expected to fail';
}
{
my $nwb;
ok(
$nwb = Finance::Bank::Natwest::Connection->new(
credentials => 'Constant',
credentials_options => { customer_no => '0101790001',
password => 'Password',
pin => '1234' }
),
'valid credentials - getting ::Connection to create credentials object'
);
isa_ok( $nwb, 'Finance::Bank::Natwest::Connection' );
foreach my $method (qw( login post )) {
can_ok( $nwb, $method );
}
is( $nws->next_call(), undef, 'nothing but new() called yet' );
$nws->clear();
}
{
my $creds = Finance::Bank::Natwest::CredentialsProvider::Constant->new(
customer_no => '0101790001', password => 'Password', pin => '1234'
);
ok(
my $nwb = Finance::Bank::Natwest::Connection->new(
credentials => $creds ),
'valid credentials - providing premade credentials object'
);
$nws->add_account( dob => '010179', uid => '0001',
pin => '1234', pass => 'Password' );
$nwb->login();
ok( $nwb->{login_ok}, 'Logged in successfully' );
}