From 12a059443b27801f851d708e143751b541815f44 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 19 Jul 2019 12:27:33 +0100 Subject: [PATCH] Bug 22610: (QA follow-up) Add unit tests for FeePayment Signed-off-by: Liz Rea Signed-off-by: Kyle M Hall --- t/db_dependent/SIP/Transaction.t | 43 +++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/SIP/Transaction.t b/t/db_dependent/SIP/Transaction.t index 076fb29c35..c630fadfde 100755 --- a/t/db_dependent/SIP/Transaction.t +++ b/t/db_dependent/SIP/Transaction.t @@ -4,7 +4,7 @@ # Current state is very rudimentary. Please help to extend it! use Modern::Perl; -use Test::More tests => 4; +use Test::More tests => 5; use Koha::Database; use t::lib::TestBuilder; @@ -12,6 +12,7 @@ use t::lib::Mocks; use C4::SIP::ILS::Patron; use C4::SIP::ILS::Transaction::RenewAll; use C4::SIP::ILS::Transaction::Checkout; +use C4::SIP::ILS::Transaction::FeePayment; use C4::Reserves; use Koha::IssuingRules; @@ -95,4 +96,44 @@ subtest fill_holds_at_checkout => sub { $transaction = C4::SIP::ILS::Transaction::Checkout->new(); is( $sip_item->{barcode}, $item1->{barcode}, "Item assigned to transaction" ); }; + +subtest "FeePayment->pay tests" => sub { + + plan tests => 5; + + # Create a borrower and add some outstanding debts to their account + my $patron = $builder->build( { source => 'Borrower' } ); + my $account = + Koha::Account->new( { patron_id => $patron->{borrowernumber} } ); + my $debt1 = $account->add_debit( + { type => 'account', amount => 100, interface => 'commandline' } ); + my $debt2 = $account->add_debit( + { type => 'account', amount => 200, interface => 'commandline' } ); + + # Instantiate a new FeePayment transaction object + my $trans = C4::SIP::ILS::Transaction::FeePayment->new(); + is( + ref $trans, + "C4::SIP::ILS::Transaction::FeePayment", + "New fee transaction created" + ); + + # Test the 'pay' method + # FIXME: pay should not require a borrowernumber + # (we should reach out to the transaction which should contain a patron object) + my $pay_type = '00'; # 00 - Cash, 01 - VISA, 02 - Creditcard + my $ok = + $trans->pay( $patron->{borrowernumber}, 100, $pay_type, $debt1->id, 0, + 0 ); + ok( $ok, "FeePayment transaction succeeded" ); + $debt1->discard_changes; + is( $debt1->amountoutstanding + 0, 0, + "Debt1 was reduced to 0 as expected" ); + my $offsets = Koha::Account::Offsets->search( + { debit_id => $debt1->id, credit_id => { '!=' => undef } } ); + is( $offsets->count, 1, "FeePayment produced an offset line correctly" ); + my $credit = $offsets->next->credit; + is( $credit->payment_type, 'SIP00', "Payment type was set correctly" ); +}; + $schema->storage->txn_rollback; -- 2.20.1