From e6dbae9dbf8ce506d6692cb7abace9c9b3175e3e Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Wed, 3 Sep 2014 19:09:46 -0400 Subject: [PATCH] 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 Signed-off-by: Marcel de Rooy Signed-off-by: Tomas Cohen Arazi --- t/db_dependent/Members.t | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/t/db_dependent/Members.t b/t/db_dependent/Members.t index 8c42affdac..61ab9a245d 100755 --- a/t/db_dependent/Members.t +++ b/t/db_dependent/Members.t @@ -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' ); -- 2.20.1