Bug 12868: Improving t/db_dependent/Member.t

The mock function of GetMemberAccountRecord did not properly
account for the undef case. This was corrected.

Then all 4 combinations of borrower number and card number being
defined or not were called to GetMemberDetail.

The problematic test case is where the borrower number is
undefined and the cardnumber is defined.

TEST PLAN
---------
1) Apply just this first patch.
2) prove -v t/db_dependent/Member.t
   -- This should fail!
3) Run koha QA test tools.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
Mark Tompsett 2014-09-03 19:09:46 -04:00 committed by Tomas Cohen Arazi
parent 9d53118f55
commit e6dbae9dbf

View file

@ -322,17 +322,37 @@ is( Check_Userid( C4::Context->config('user'), '' ), 0,
subtest 'GetMemberAccountBalance' => sub {
plan tests => 6;
plan tests => 10;
my $members_mock = new Test::MockModule('C4::Members');
$members_mock->mock( 'GetMemberAccountRecords', sub {
my @accountlines = (
my ($borrowernumber) = @_;
if ($borrowernumber) {
my @accountlines = (
{ amountoutstanding => '7', accounttype => 'Rent' },
{ amountoutstanding => '5', accounttype => 'Res' },
{ amountoutstanding => '3', accounttype => 'Pay' } );
return ( 15, \@accountlines );
return ( 15, \@accountlines );
}
else {
my @accountlines;
return ( 0, \@accountlines );
}
});
my $person = GetMemberDetails(undef,undef);
ok( !$person , 'Expected no member details from undef,undef' );
$person = GetMemberDetails(undef,'987654321');
is( $person->{amountoutstanding}, 15,
'Expected 15 outstanding for cardnumber.');
$borrowernumber = $person->{borrowernumber};
$person = GetMemberDetails($borrowernumber,undef);
is( $person->{amountoutstanding}, 15,
'Expected 15 outstanding for borrowernumber.');
$person = GetMemberDetails($borrowernumber,'987654321');
is( $person->{amountoutstanding}, 15,
'Expected 15 outstanding for both borrowernumber and cardnumber.');
# do not count holds charges
C4::Context->set_preference( 'HoldsInNoissuesCharge', '1' );
C4::Context->set_preference( 'ManInvInNoissuesCharge', '0' );