From b1171d9ef399d68e49044fbc2cb17efbeeaee093 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 29 Mar 2019 09:46:12 +0000 Subject: [PATCH] Bug 22600: Update Tests adding 'interface' as needed Signed-off-by: Josef Moravec Signed-off-by: Tomas Cohen Arazi Signed-off-by: Nick Clemens --- C4/Accounts.pm | 1 + t/db_dependent/Accounts.t | 75 ++++----- t/db_dependent/Circulation.t | 21 ++- .../Circulation/NoIssuesChargeGuarantees.t | 2 +- t/db_dependent/Koha/Account.t | 146 +++++++++--------- t/db_dependent/Koha/Account/Lines.t | 64 +++++--- t/db_dependent/api/v1/patrons_accounts.t | 11 +- 7 files changed, 179 insertions(+), 141 deletions(-) diff --git a/C4/Accounts.pm b/C4/Accounts.pm index 174c825f8f..f7950e102a 100644 --- a/C4/Accounts.pm +++ b/C4/Accounts.pm @@ -166,6 +166,7 @@ sub manualinvoice { itemnumber => $itemnum || undef, note => $note, manager_id => $manager_id, + interface => C4::Context->interface, branchcode => $branchcode, } )->store(); diff --git a/t/db_dependent/Accounts.t b/t/db_dependent/Accounts.t index 8822ea8bec..791af7875b 100644 --- a/t/db_dependent/Accounts.t +++ b/t/db_dependent/Accounts.t @@ -68,6 +68,7 @@ $context->mock( 'userenv', sub { branch => $branchcode, }; }); +$context->mock( 'interface', sub { return "commandline" } ); my $userenv_branchcode = $branchcode; # Test manualinvoice @@ -109,9 +110,10 @@ my $sth = $dbh->prepare( borrowernumber, amountoutstanding, date, - description + description, + interface ) - VALUES ( ?, ?, (select date_sub(CURRENT_DATE, INTERVAL ? DAY) ), ? )" + VALUES ( ?, ?, (select date_sub(CURRENT_DATE, INTERVAL ? DAY) ), ?, ? )" ); my $days = 5; @@ -133,7 +135,7 @@ my $categorycode = $builder->build({ source => 'Category' })->{categorycode}; my $borrower = Koha::Patron->new( { firstname => 'Test', surname => 'Patron', categorycode => $categorycode, branchcode => $branchcode } )->store(); for my $data ( @test_data ) { - $sth->execute($borrower->borrowernumber, $data->{amount}, $data->{days_ago}, $data->{description}); + $sth->execute($borrower->borrowernumber, $data->{amount}, $data->{days_ago}, $data->{description}, 'commandline'); } purge_zero_balance_fees( $days ); @@ -178,8 +180,8 @@ subtest "Koha::Account::pay tests" => sub { my $account = Koha::Account->new({ patron_id => $borrower->id }); - my $line1 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 100 })->store(); - my $line2 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 200 })->store(); + my $line1 = $account->add_debit({ type => 'account', amount => 100, interface => 'commandline' }); + my $line2 = $account->add_debit({ type => 'account', amount => 200, interface => 'commandline' }); $sth = $dbh->prepare("SELECT count(*) FROM accountlines"); $sth->execute; @@ -278,7 +280,7 @@ subtest "Koha::Account::pay tests" => sub { $note = $sth->fetchrow_array; is($note,'$200.00 payment note', '$200.00 payment note is registered'); - my $line3 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 42, accounttype => 'TEST' })->store(); + my $line3 = $account->add_debit({ type => 'account', amount => 42, interface => 'commandline' }); my $payment_id = $account->pay( { lines => [$line3], amount => 42 } ); my $payment = Koha::Account::Lines->find( $payment_id ); is( $payment->amount(), '-42.000000', "Payment paid the specified fine" ); @@ -306,10 +308,10 @@ subtest "Koha::Account::pay particular line tests" => sub { my $account = Koha::Account->new({ patron_id => $borrower->id }); - my $line1 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 1 })->store(); - my $line2 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 2 })->store(); - my $line3 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 3 })->store(); - my $line4 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 4 })->store(); + my $line1 = $account->add_debit({ type => 'account', amount => 1, interface => 'commandline' }); + my $line2 = $account->add_debit({ type => 'account', amount => 2, interface => 'commandline' }); + my $line3 = $account->add_debit({ type => 'account', amount => 3, interface => 'commandline' }); + my $line4 = $account->add_debit({ type => 'account', amount => 4, interface => 'commandline' }); is( $account->balance(), 10, "Account balance is 10" ); @@ -351,7 +353,7 @@ subtest "Koha::Account::pay writeoff tests" => sub { my $account = Koha::Account->new({ patron_id => $borrower->id }); - my $line = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 42 })->store(); + my $line = $account->add_debit({ type => 'account', amount => 42, interface => 'commandline' }); is( $account->balance(), 42, "Account balance is 42" ); @@ -747,29 +749,28 @@ subtest "Koha::Account::non_issues_charges tests" => sub { plan tests => 21; my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); + my $account = $patron->account; my $today = dt_from_string; my $res = 3; my $rent = 5; my $manual = 7; - Koha::Account::Line->new( + $account->add_debit( { - borrowernumber => $patron->borrowernumber, - date => $today, - description => 'a Res fee', - accounttype => 'Res', - amountoutstanding => $res, + description => 'a Res fee', + type => 'reserve', + amount => $res, + interface => 'commandline' } - )->store; - Koha::Account::Line->new( + ); + $account->add_debit( { - borrowernumber => $patron->borrowernumber, - date => $today, - description => 'a Rental fee', - accounttype => 'Rent', - amountoutstanding => $rent, + description => 'a Rental fee', + type => 'rent', + amount => $rent, + interface => 'commandline' } - )->store; + ); Koha::Account::Line->new( { borrowernumber => $patron->borrowernumber, @@ -777,6 +778,7 @@ subtest "Koha::Account::non_issues_charges tests" => sub { description => 'a Manual invoice fee', accounttype => 'Copie', amountoutstanding => $manual, + interface => 'commandline' } )->store; Koha::AuthorisedValue->new( @@ -787,7 +789,6 @@ subtest "Koha::Account::non_issues_charges tests" => sub { } )->store; - my $account = $patron->account; t::lib::Mocks::mock_preference( 'HoldsInNoissuesCharge', 0 ); t::lib::Mocks::mock_preference( 'RentalsInNoissuesCharge', 0 ); @@ -925,8 +926,8 @@ subtest "Koha::Account::non_issues_charges tests" => sub { } ); - my $debit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 0 })->store(); - my $credit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => -5 })->store(); + my $debit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 0, interface => 'commandline' })->store(); + my $credit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => -5, interface => 'commandline' })->store(); my $offset = Koha::Account::Offset->new({ credit_id => $credit->id, debit_id => $debit->id, type => 'Payment', amount => 0 })->store(); purge_zero_balance_fees( 1 ); my $debit_2 = Koha::Account::Lines->find( $debit->id ); @@ -935,8 +936,8 @@ subtest "Koha::Account::non_issues_charges tests" => sub { ok( $credit_2, 'Credit was correctly not deleted when credit has balance' ); is( Koha::Account::Lines->count({ borrowernumber => $patron->id }), 2, "The 2 account lines still exists" ); - $debit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 5 })->store(); - $credit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 0 })->store(); + $debit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 5, interface => 'commanline' })->store(); + $credit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 0, interface => 'commandline' })->store(); $offset = Koha::Account::Offset->new({ credit_id => $credit->id, debit_id => $debit->id, type => 'Payment', amount => 0 })->store(); purge_zero_balance_fees( 1 ); $debit_2 = $credit_2 = undef; @@ -946,8 +947,8 @@ subtest "Koha::Account::non_issues_charges tests" => sub { ok( $credit_2, 'Credit was correctly not deleted when debit has balance' ); is( Koha::Account::Lines->count({ borrowernumber => $patron->id }), 2 + 2, "The 2 + 2 account lines still exists" ); - $debit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 0 })->store(); - $credit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 0 })->store(); + $debit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 0, interface => 'commandline' })->store(); + $credit = Koha::Account::Line->new({ borrowernumber => $patron->id, date => '1900-01-01', amountoutstanding => 0, interface => 'commandline' })->store(); $offset = Koha::Account::Offset->new({ credit_id => $credit->id, debit_id => $debit->id, type => 'Payment', amount => 0 })->store(); purge_zero_balance_fees( 1 ); $debit_2 = Koha::Account::Lines->find( $debit->id ); @@ -976,8 +977,8 @@ subtest "Koha::Account::Line::void tests" => sub { my $account = Koha::Account->new({ patron_id => $borrower->id }); - my $line1 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amount => 10, amountoutstanding => 10 })->store(); - my $line2 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amount => 20, amountoutstanding => 20 })->store(); + my $line1 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amount => 10, amountoutstanding => 10, interface => 'commandline' })->store(); + my $line2 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amount => 20, amountoutstanding => 20, interface => 'commandline' })->store(); is( $account->balance(), 30, "Account balance is 30" ); is( $line1->amountoutstanding, 10, 'First fee has amount outstanding of 10' ); @@ -1043,8 +1044,8 @@ subtest "Koha::Account::Offset credit & debit tests" => sub { my $account = Koha::Account->new({ patron_id => $borrower->id }); - my $line1 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amount => 10, amountoutstanding => 10 })->store(); - my $line2 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amount => 20, amountoutstanding => 20 })->store(); + my $line1 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amount => 10, amountoutstanding => 10, interface => 'commandline' })->store(); + my $line2 = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amount => 20, amountoutstanding => 20, interface => 'commandline' })->store(); my $id = $account->pay( { @@ -1103,7 +1104,7 @@ subtest "Payment notice tests" => sub { }); my $account = Koha::Account->new({ patron_id => $borrower->id }); - my $line = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 27 })->store(); + my $line = Koha::Account::Line->new({ borrowernumber => $borrower->borrowernumber, amountoutstanding => 27, interface => 'commandline' })->store(); my $letter = Koha::Notice::Templates->find( { code => 'ACCOUNT_PAYMENT' } ); $letter->content('[%- USE Price -%]A payment of [% credit.amount * -1 | $Price %] has been applied to your account.'); diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index 7cd55479c4..9dac067f77 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -684,6 +684,7 @@ my ( $reused_itemnumber_1, $reused_itemnumber_2 ); $account->add_debit( { amount => $fines_amount, + interface => 'test', type => 'fine', item_id => $item_to_auto_renew->{itemnumber}, description => "Some fines" @@ -697,6 +698,7 @@ my ( $reused_itemnumber_1, $reused_itemnumber_2 ); $account->add_debit( { amount => $fines_amount, + interface => 'test', type => 'fine', item_id => $item_to_auto_renew->{itemnumber}, description => "Some fines" @@ -710,6 +712,7 @@ my ( $reused_itemnumber_1, $reused_itemnumber_2 ); $account->add_debit( { amount => $fines_amount, + interface => 'test', type => 'fine', item_id => $item_to_auto_renew->{itemnumber}, description => "Some fines" @@ -2046,7 +2049,8 @@ subtest '_FixAccountForLostAndReturned' => sub { # Write off the debt my $credit = $account->add_credit( { amount => $account->balance, - type => 'writeoff' + type => 'writeoff', + interface => 'test', } ); $credit->apply( { debits => $debts, offset_type => 'Writeoff' } ); @@ -2106,7 +2110,8 @@ subtest '_FixAccountForLostAndReturned' => sub { # Write off the debt my $credit = $account->add_credit( { amount => $account->balance, - type => 'payment' + type => 'payment', + interface => 'test', } ); $credit->apply( { debits => $debts, offset_type => 'Payment' } ); @@ -2226,7 +2231,8 @@ subtest '_FixAccountForLostAndReturned' => sub { my $payment_amount = 27; my $payment = $account->add_credit( { amount => $payment_amount, - type => 'payment' + type => 'payment', + interface => 'test', } ); @@ -2236,7 +2242,8 @@ subtest '_FixAccountForLostAndReturned' => sub { my $write_off_amount = 25; my $write_off = $account->add_credit( { amount => $write_off_amount, - type => 'writeoff' + type => 'writeoff', + interface => 'test', } ); $write_off->apply( { debits => $lost_fee_lines->reset, offset_type => 'Writeoff' } ); @@ -2327,7 +2334,8 @@ subtest '_FixAccountForLostAndReturned' => sub { my $payment_amount = 27; my $payment = $account->add_credit( { amount => $payment_amount, - type => 'payment' + type => 'payment', + interface => 'test', } ); $payment->apply({ debits => $lost_fee_lines->reset, offset_type => 'Payment' }); @@ -2338,7 +2346,7 @@ subtest '_FixAccountForLostAndReturned' => sub { ); my $manual_debit_amount = 80; - $account->add_debit( { amount => $manual_debit_amount, type => 'fine' } ); + $account->add_debit( { amount => $manual_debit_amount, type => 'fine', interface =>'test' } ); is( $account->balance, $manual_debit_amount + $replacement_amount - $payment_amount, 'Manual debit applied' ); @@ -2380,6 +2388,7 @@ subtest '_FixOverduesOnReturn' => sub { itemnumber => $item->itemnumber, amount => 99.00, amountoutstanding => 99.00, + interface => 'test', } )->store(); diff --git a/t/db_dependent/Circulation/NoIssuesChargeGuarantees.t b/t/db_dependent/Circulation/NoIssuesChargeGuarantees.t index 16312a493e..b0ba95193a 100644 --- a/t/db_dependent/Circulation/NoIssuesChargeGuarantees.t +++ b/t/db_dependent/Circulation/NoIssuesChargeGuarantees.t @@ -69,7 +69,7 @@ my ( $issuingimpossible, $needsconfirmation ) = CanBookBeIssued( $patron, $item- is( $issuingimpossible->{DEBT_GUARANTEES}, undef, "Patron can check out item" ); my $account = Koha::Account->new( { patron_id => $guarantee->{borrowernumber} } ); -$account->add_debit({ amount => 10.00, type => 'lost_item' }); +$account->add_debit({ amount => 10.00, type => 'lost_item', interface => 'test' }); ( $issuingimpossible, $needsconfirmation ) = CanBookBeIssued( $patron, $item->{barcode} ); is( $issuingimpossible->{DEBT_GUARANTEES} + 0, '10.00' + 0, "Patron cannot check out item due to debt for guarantee" ); diff --git a/t/db_dependent/Koha/Account.t b/t/db_dependent/Koha/Account.t index 1ccf716437..c0cd9c79cb 100755 --- a/t/db_dependent/Koha/Account.t +++ b/t/db_dependent/Koha/Account.t @@ -33,6 +33,7 @@ use t::lib::TestBuilder; my $schema = Koha::Database->new->schema; my $builder = t::lib::TestBuilder->new; +C4::Context->interface('commandline'); subtest 'new' => sub { @@ -59,10 +60,10 @@ subtest 'outstanding_debits() tests' => sub { my $account = $patron->account; my @generated_lines; - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store; - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store; - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store; - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4 })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1, interface => 'commandline' })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2, interface => 'commandline' })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3, interface => 'commandline' })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4, interface => 'commandline' })->store; my $lines = $account->outstanding_debits(); my @lines_arr = $account->outstanding_debits(); @@ -79,9 +80,9 @@ subtest 'outstanding_debits() tests' => sub { $i++; } my $patron_2 = $builder->build_object({ class => 'Koha::Patrons' }); - Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => -2 })->store; - my $just_one = Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => 3, amountoutstanding => 3 })->store; - Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -6, amountoutstanding => -6 })->store; + Koha::Account::Line->new({ borrowernumber => $patron_2->id, amountoutstanding => -2, interface => 'commandline' })->store; + my $just_one = Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => 3, amountoutstanding => 3, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -6, amountoutstanding => -6, interface => 'commandline' })->store; $lines = $patron_2->account->outstanding_debits(); is( $lines->total_outstanding, 3, "Total if some outstanding debits and some credits is only debits" ); is( $lines->count, 1, "With 1 outstanding debits, we get back a Lines object with 1 lines" ); @@ -89,9 +90,9 @@ subtest 'outstanding_debits() tests' => sub { is_deeply( $the_line->unblessed, $lines->next->unblessed, "We get back the one correct line"); my $patron_3 = $builder->build_object({ class => 'Koha::Patrons' }); - Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -2, amountoutstanding => -2 })->store; - Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -20, amountoutstanding => -20 })->store; - Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -200, amountoutstanding => -200 })->store; + Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -2, amountoutstanding => -2, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -20, amountoutstanding => -20, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => -200, amountoutstanding => -200, interface => 'commandline' })->store; $lines = $patron_3->account->outstanding_debits(); is( $lines->total_outstanding, 0, "Total if no outstanding debits total is 0" ); is( $lines->count, 0, "With 0 outstanding debits, we get back a Lines object with 0 lines" ); @@ -103,7 +104,7 @@ subtest 'outstanding_debits() tests' => sub { is( $lines->count, 0, "With no outstanding debits, we get back a Lines object with 0 lines" ); # create a pathological credit with amountoutstanding > 0 (BZ 14591) - Koha::Account::Line->new({ borrowernumber => $patron_4->id, amount => -3, amountoutstanding => 3 })->store(); + Koha::Account::Line->new({ borrowernumber => $patron_4->id, amount => -3, amountoutstanding => 3, interface => 'commandline' })->store(); $lines = $account_4->outstanding_debits(); is( $lines->count, 0, 'No credits are confused with debits because of the amountoutstanding value' ); @@ -120,10 +121,10 @@ subtest 'outstanding_credits() tests' => sub { my $account = $patron->account; my @generated_lines; - push @generated_lines, $account->add_credit({ amount => 1 }); - push @generated_lines, $account->add_credit({ amount => 2 }); - push @generated_lines, $account->add_credit({ amount => 3 }); - push @generated_lines, $account->add_credit({ amount => 4 }); + push @generated_lines, $account->add_credit({ amount => 1, interface => 'commandline' }); + push @generated_lines, $account->add_credit({ amount => 2, interface => 'commandline' }); + push @generated_lines, $account->add_credit({ amount => 3, interface => 'commandline' }); + push @generated_lines, $account->add_credit({ amount => 4, interface => 'commandline' }); my $lines = $account->outstanding_credits(); my @lines_arr = $account->outstanding_credits(); @@ -147,7 +148,7 @@ subtest 'outstanding_credits() tests' => sub { is( $lines->count, 0, "With no outstanding credits, we get back a Lines object with 0 lines" ); # create a pathological debit with amountoutstanding < 0 (BZ 14591) - Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => 2, amountoutstanding => -3 })->store(); + Koha::Account::Line->new({ borrowernumber => $patron_2->id, amount => 2, amountoutstanding => -3, interface => 'commandline' })->store(); $lines = $account->outstanding_credits(); is( $lines->count, 0, 'No debits are confused with credits because of the amountoutstanding value' ); @@ -178,7 +179,8 @@ subtest 'add_credit() tests' => sub { library_id => $patron->branchcode, note => 'not really important', type => 'payment', - user_id => $patron->id + user_id => $patron->id, + interface => 'commandline' } ); @@ -197,7 +199,8 @@ subtest 'add_credit() tests' => sub { library_id => $patron->branchcode, note => 'not really important', user_id => $patron->id, - sip => $sip_code + sip => $sip_code, + interface => 'commandline' } ); @@ -220,7 +223,8 @@ subtest 'add_credit() tests' => sub { description => 'Manual credit applied', library_id => $patron->branchcode, user_id => $patron->id, - type => 'forgiven' + type => 'forgiven', + interface => 'commandline' } ); @@ -254,7 +258,8 @@ subtest 'add_debit() tests' => sub { library_id => $patron->branchcode, note => 'this should fail anyway', type => 'rent', - user_id => $patron->id + user_id => $patron->id, + interface => 'commandline' } ); } 'Koha::Exceptions::Account::AmountNotPositive', 'Expected validation exception thrown (amount)'; @@ -266,7 +271,8 @@ subtest 'add_debit() tests' => sub { library_id => $patron->branchcode, note => 'this should fail anyway', type => 'failure', - user_id => $patron->id + user_id => $patron->id, + interface => 'commandline' } ); } 'Koha::Exceptions::Account::UnrecognisedType', 'Expected validation exception thrown (type)'; @@ -280,7 +286,8 @@ subtest 'add_debit() tests' => sub { library_id => $patron->branchcode, note => 'not really important', type => 'rent', - user_id => $patron->id + user_id => $patron->id, + interface => 'commandline' } ); @@ -308,6 +315,7 @@ subtest 'add_debit() tests' => sub { note => 'not really important', type => 'rent', user_id => $patron->id, + interface => 'commandline' } ); @@ -349,20 +357,20 @@ subtest 'lines() tests' => sub { my @generated_lines; # Add Credits - push @generated_lines, $account->add_credit({ amount => 1 }); - push @generated_lines, $account->add_credit({ amount => 2 }); - push @generated_lines, $account->add_credit({ amount => 3 }); - push @generated_lines, $account->add_credit({ amount => 4 }); + push @generated_lines, $account->add_credit({ amount => 1, interface => 'commandline' }); + push @generated_lines, $account->add_credit({ amount => 2, interface => 'commandline' }); + push @generated_lines, $account->add_credit({ amount => 3, interface => 'commandline' }); + push @generated_lines, $account->add_credit({ amount => 4, interface => 'commandline' }); # Add Debits - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 1 })->store; - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 2 })->store; - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 3 })->store; - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 4 })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 1, interface => 'commandline' })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 2, interface => 'commandline' })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 3, interface => 'commandline' })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 4, interface => 'commandline' })->store; # Paid Off - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 0 })->store; - push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 0 })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 0, interface => 'commandline' })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 0, interface => 'commandline' })->store; my $lines = $account->lines; is( $lines->_resultset->count, 10, "All accountlines (debits, credits and paid off) were fetched"); @@ -384,21 +392,21 @@ subtest 'reconcile_balance' => sub { my $account = $patron->account; # Add Credits - $account->add_credit({ amount => 1 }); - $account->add_credit({ amount => 2 }); - $account->add_credit({ amount => 3 }); - $account->add_credit({ amount => 4 }); - $account->add_credit({ amount => 5 }); + $account->add_credit({ amount => 1, interface => 'commandline' }); + $account->add_credit({ amount => 2, interface => 'commandline' }); + $account->add_credit({ amount => 3, interface => 'commandline' }); + $account->add_credit({ amount => 4, interface => 'commandline' }); + $account->add_credit({ amount => 5, interface => 'commandline' }); # Add Debits TODO: replace for calls to add_debit when time comes - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4 })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4, interface => 'commandline' })->store; # Paid Off - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0, interface => 'commandline' })->store; is( $account->balance(), -5, "Account balance is -5" ); is( $account->outstanding_debits->total_outstanding, 10, 'Outstanding debits sum 10' ); @@ -423,20 +431,20 @@ subtest 'reconcile_balance' => sub { my $account = $patron->account; # Add Credits - $account->add_credit({ amount => 1 }); - $account->add_credit({ amount => 2 }); - $account->add_credit({ amount => 3 }); - $account->add_credit({ amount => 4 }); + $account->add_credit({ amount => 1, interface => 'commandline' }); + $account->add_credit({ amount => 2, interface => 'commandline' }); + $account->add_credit({ amount => 3, interface => 'commandline' }); + $account->add_credit({ amount => 4, interface => 'commandline' }); # Add Debits TODO: replace for calls to add_debit when time comes - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4 })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4, interface => 'commandline' })->store; # Paid Off - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0, interface => 'commandline' })->store; is( $account->balance(), 0, "Account balance is 0" ); is( $account->outstanding_debits->total_outstanding, 10, 'Outstanding debits sum 10' ); @@ -461,21 +469,21 @@ subtest 'reconcile_balance' => sub { my $account = $patron->account; # Add Credits - $account->add_credit({ amount => 1 }); - $account->add_credit({ amount => 2 }); - $account->add_credit({ amount => 3 }); - $account->add_credit({ amount => 4 }); + $account->add_credit({ amount => 1, interface => 'commandline' }); + $account->add_credit({ amount => 2, interface => 'commandline' }); + $account->add_credit({ amount => 3, interface => 'commandline' }); + $account->add_credit({ amount => 4, interface => 'commandline' }); # Add Debits TODO: replace for calls to add_debit when time comes - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 5, amountoutstanding => 5 })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 5, amountoutstanding => 5, interface => 'commandline' })->store; # Paid Off - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store; - Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0, interface => 'commandline' })->store; + Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0, interface => 'commandline' })->store; is( $account->balance(), 5, "Account balance is 5" ); is( $account->outstanding_debits->total_outstanding, 15, 'Outstanding debits sum 15' ); @@ -500,13 +508,13 @@ subtest 'reconcile_balance' => sub { my $account = $patron->account; # Add Credits - $account->add_credit({ amount => 1 }); - $account->add_credit({ amount => 3 }); + $account->add_credit({ amount => 1, interface => 'commandline' }); + $account->add_credit({ amount => 3, interface => 'commandline' }); # Add Debits TODO: replace for calls to add_debit when time comes - my $debit_1 = Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store; - my $debit_2 = Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store; - my $debit_3 = Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store; + my $debit_1 = Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1, interface => 'commandline' })->store; + my $debit_2 = Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2, interface => 'commandline' })->store; + my $debit_3 = Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3, interface => 'commandline' })->store; is( $account->balance(), 2, "Account balance is 2" ); is( $account->outstanding_debits->total_outstanding, 6, 'Outstanding debits sum 6' ); diff --git a/t/db_dependent/Koha/Account/Lines.t b/t/db_dependent/Koha/Account/Lines.t index 2539754184..f25bfee410 100755 --- a/t/db_dependent/Koha/Account/Lines.t +++ b/t/db_dependent/Koha/Account/Lines.t @@ -59,6 +59,7 @@ subtest 'item() tests' => sub { itemnumber => $item->itemnumber, accounttype => "F", amount => 10, + interface => 'commandline', })->store; my $account_line_item = $line->item; @@ -86,7 +87,8 @@ subtest 'total_outstanding() tests' => sub { { borrowernumber => $patron->id, accounttype => "F", amount => 10, - amountoutstanding => 10 + amountoutstanding => 10, + interface => 'commandline', } )->store; @@ -94,7 +96,8 @@ subtest 'total_outstanding() tests' => sub { { borrowernumber => $patron->id, accounttype => "F", amount => 10, - amountoutstanding => 10 + amountoutstanding => 10, + interface => 'commandline', } )->store; @@ -105,7 +108,8 @@ subtest 'total_outstanding() tests' => sub { { borrowernumber => $patron->id, accounttype => "F", amount => -10, - amountoutstanding => -10 + amountoutstanding => -10, + interface => 'commandline', } )->store; @@ -116,7 +120,8 @@ subtest 'total_outstanding() tests' => sub { { borrowernumber => $patron->id, accounttype => "F", amount => -10, - amountoutstanding => -10 + amountoutstanding => -10, + interface => 'commandline', } )->store; @@ -127,7 +132,8 @@ subtest 'total_outstanding() tests' => sub { { borrowernumber => $patron->id, accounttype => "F", amount => -100, - amountoutstanding => -100 + amountoutstanding => -100, + interface => 'commandline', } )->store; @@ -146,7 +152,7 @@ subtest 'is_credit() and is_debit() tests' => sub { my $patron = $builder->build_object({ class => 'Koha::Patrons' }); my $account = $patron->account; - my $credit = $account->add_credit({ amount => 100, user_id => $patron->id }); + my $credit = $account->add_credit({ amount => 100, user_id => $patron->id, interface => 'commandline' }); ok( $credit->is_credit, 'is_credit detects credits' ); ok( !$credit->is_debit, 'is_debit detects credits' ); @@ -156,6 +162,7 @@ subtest 'is_credit() and is_debit() tests' => sub { borrowernumber => $patron->id, accounttype => "F", amount => 10, + interface => 'commandline', })->store; ok( !$debit->is_credit, 'is_credit detects debits' ); @@ -173,13 +180,14 @@ subtest 'apply() tests' => sub { my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); my $account = $patron->account; - my $credit = $account->add_credit( { amount => 100, user_id => $patron->id } ); + my $credit = $account->add_credit( { amount => 100, user_id => $patron->id, interface => 'commandline' } ); my $debit_1 = Koha::Account::Line->new( { borrowernumber => $patron->id, accounttype => "F", amount => 10, - amountoutstanding => 10 + amountoutstanding => 10, + interface => 'commandline', } )->store; @@ -187,7 +195,8 @@ subtest 'apply() tests' => sub { { borrowernumber => $patron->id, accounttype => "F", amount => 100, - amountoutstanding => 100 + amountoutstanding => 100, + interface => 'commandline', } )->store; @@ -237,18 +246,19 @@ subtest 'apply() tests' => sub { '->apply() can only be used with credits'; $debits = Koha::Account::Lines->search({ accountlines_id => $credit->id }); - my $credit_3 = $account->add_credit({ amount => 1 }); + my $credit_3 = $account->add_credit({ amount => 1, interface => 'commandline' }); throws_ok { $credit_3->apply({ debits => $debits }); } 'Koha::Exceptions::Account::IsNotDebit', '->apply() can only be applied to credits'; - my $credit_2 = $account->add_credit({ amount => 20 }); + my $credit_2 = $account->add_credit({ amount => 20, interface => 'commandline' }); my $debit_3 = Koha::Account::Line->new( { borrowernumber => $patron->id, accounttype => "F", amount => 100, - amountoutstanding => 100 + amountoutstanding => 100, + interface => 'commandline', } )->store; @@ -296,6 +306,7 @@ subtest 'Keep account info when related patron, staff or item is deleted' => sub itemnumber => $item->itemnumber, accounttype => "F", amount => 10, + interface => 'commandline', })->store; $issue->delete; @@ -333,7 +344,8 @@ subtest 'adjust() tests' => sub { { borrowernumber => $patron->id, accounttype => "F", amount => 10, - amountoutstanding => 10 + amountoutstanding => 10, + interface => 'commandline', } )->store; @@ -341,21 +353,22 @@ subtest 'adjust() tests' => sub { { borrowernumber => $patron->id, accounttype => "FU", amount => 100, - amountoutstanding => 100 + amountoutstanding => 100, + interface => 'commandline' } )->store; - my $credit = $account->add_credit( { amount => 40, user_id => $patron->id } ); + my $credit = $account->add_credit( { amount => 40, user_id => $patron->id, interface => 'commandline' } ); - throws_ok { $debit_1->adjust( { amount => 50, type => 'bad' } ) } + throws_ok { $debit_1->adjust( { amount => 50, type => 'bad', interface => 'commandline' } ) } qr/Update type not recognised/, 'Exception thrown for unrecognised type'; - throws_ok { $debit_1->adjust( { amount => 50, type => 'fine_update' } ) } + throws_ok { $debit_1->adjust( { amount => 50, type => 'fine_update', interface => 'commandline' } ) } qr/Update type not allowed on this accounttype/, 'Exception thrown for type conflict'; # Increment an unpaid fine - $debit_2->adjust( { amount => 150, type => 'fine_update' } )->discard_changes; + $debit_2->adjust( { amount => 150, type => 'fine_update', interface => 'commandline' } )->discard_changes; is( $debit_2->amount * 1, 150, 'Fine amount was updated in full' ); is( $debit_2->amountoutstanding * 1, 150, 'Fine amountoutstanding was update in full' ); @@ -381,7 +394,7 @@ subtest 'adjust() tests' => sub { t::lib::Mocks::mock_preference( 'FinesLog', 1 ); # Increment the partially paid fine - $debit_2->adjust( { amount => 160, type => 'fine_update' } )->discard_changes; + $debit_2->adjust( { amount => 160, type => 'fine_update', interface => 'commandline' } )->discard_changes; is( $debit_2->amount * 1, 160, 'Fine amount was updated in full' ); is( $debit_2->amountoutstanding * 1, 120, 'Fine amountoutstanding was updated by difference' ); @@ -395,7 +408,7 @@ subtest 'adjust() tests' => sub { is( $schema->resultset('ActionLog')->count(), $action_logs + 1, 'Log was added' ); # Decrement the partially paid fine, less than what was paid - $debit_2->adjust( { amount => 50, type => 'fine_update' } )->discard_changes; + $debit_2->adjust( { amount => 50, type => 'fine_update', interface => 'commandline' } )->discard_changes; is( $debit_2->amount * 1, 50, 'Fine amount was updated in full' ); is( $debit_2->amountoutstanding * 1, 10, 'Fine amountoutstanding was updated by difference' ); @@ -407,7 +420,7 @@ subtest 'adjust() tests' => sub { is( $THIS_offset->type, 'fine_decrease', 'Adjust type stored correctly' ); # Decrement the partially paid fine, more than what was paid - $debit_2->adjust( { amount => 30, type => 'fine_update' } )->discard_changes; + $debit_2->adjust( { amount => 30, type => 'fine_update', interface => 'commandline' } )->discard_changes; is( $debit_2->amount * 1, 30, 'Fine amount was updated in full' ); is( $debit_2->amountoutstanding * 1, 0, 'Fine amountoutstanding was zeroed (payment was 40)' ); @@ -438,10 +451,11 @@ subtest 'checkout() tests' => sub { my $checkout = AddIssue( $patron->unblessed, $item->barcode ); my $line = $account->add_debit({ - amount => 10, - item_id => $item->itemnumber, - issue_id => $checkout->issue_id, - type => 'fine', + amount => 10, + interface => 'commandline', + item_id => $item->itemnumber, + issue_id => $checkout->issue_id, + type => 'fine', }); my $line_checkout = $line->checkout; diff --git a/t/db_dependent/api/v1/patrons_accounts.t b/t/db_dependent/api/v1/patrons_accounts.t index 8983812cd5..1a21a49eb8 100644 --- a/t/db_dependent/api/v1/patrons_accounts.t +++ b/t/db_dependent/api/v1/patrons_accounts.t @@ -68,7 +68,8 @@ subtest 'get_balance() tests' => sub { accounttype => "N", # New card amountoutstanding => 50, manager_id => $patron->borrowernumber, - branchcode => $library->id + branchcode => $library->id, + interface => 'test', } )->store(); $account_line_1->discard_changes; @@ -82,7 +83,8 @@ subtest 'get_balance() tests' => sub { accounttype => "N", # New card amountoutstanding => 50.01, manager_id => $patron->borrowernumber, - branchcode => $library->id + branchcode => $library->id, + interface => 'test', } )->store(); $account_line_2->discard_changes; @@ -128,7 +130,7 @@ subtest 'get_balance() tests' => sub { # add a credit my $credit_line = $account->add_credit( - { amount => 10, user_id => $patron->id, library_id => $library->id } ); + { amount => 10, user_id => $patron->id, library_id => $library->id, interface => 'test' } ); # re-read from the DB $credit_line->discard_changes; $tx = $t->ua->build_tx( GET => "/api/v1/patrons/$patron_id/account" ); @@ -184,6 +186,7 @@ subtest 'add_credit() tests' => sub { accounttype => "N", # New card amountoutstanding => 10, manager_id => $patron->borrowernumber, + interface => 'test', } )->store(); my $debit_2 = Koha::Account::Line->new( @@ -194,6 +197,7 @@ subtest 'add_credit() tests' => sub { accounttype => "N", # New card amountoutstanding => 15, manager_id => $patron->borrowernumber, + interface => 'test', } )->store(); @@ -220,6 +224,7 @@ subtest 'add_credit() tests' => sub { accounttype => "N", # New card amountoutstanding => 100, manager_id => $patron->borrowernumber, + interface => 'test', } )->store(); -- 2.39.5