View | Details | Raw Unified | Return to bug 27927
Collapse All | Expand All

(-)a/t/db_dependent/Koha/Account/Line.t (-7 / +34 lines)
Lines 175-181 subtest 'is_credit() and is_debit() tests' => sub { Link Here
175
175
176
subtest 'apply() tests' => sub {
176
subtest 'apply() tests' => sub {
177
177
178
    plan tests => 25;
178
    plan tests => 26;
179
179
180
    $schema->storage->txn_begin;
180
    $schema->storage->txn_begin;
181
181
Lines 327-336 subtest 'apply() tests' => sub { Link Here
327
    my $module = Test::MockModule->new('C4::Circulation');
327
    my $module = Test::MockModule->new('C4::Circulation');
328
    $module->mock('AddRenewal', sub { $called = 1; });
328
    $module->mock('AddRenewal', sub { $called = 1; });
329
    $module->mock('CanBookBeRenewed', sub { return 1; });
329
    $module->mock('CanBookBeRenewed', sub { return 1; });
330
    my $credit_renew = $account->add_credit({ amount => 100, user_id => $patron->id, interface => 'commandline' });
330
    my $credit_forgive = $account->add_credit(
331
        {
332
            amount    => 1,
333
            user_id   => $patron->id,
334
            interface => 'cli',
335
            type      => 'FORGIVEN'
336
        }
337
    );
331
    my $debits_renew = Koha::Account::Lines->search({ accountlines_id => $accountline->id })->as_list;
338
    my $debits_renew = Koha::Account::Lines->search({ accountlines_id => $accountline->id })->as_list;
332
    $credit_renew->apply( { debits => $debits_renew, offset_type => 'Manual Credit' } );
339
    $credit_forgive->apply( { debits => $debits_renew, offset_type => 'Forgiven' } );
340
    is( $called, 0, 'C4::Circulation::AddRenew NOT called when RenewAccruingItemWhenPaid enabled but credit type is "FORGIVEN"' );
333
341
342
    $accountline = Koha::Account::Line->new(
343
        {
344
            issue_id       => $checkout->id,
345
            borrowernumber => $patron->id,
346
            itemnumber     => $item->id,
347
            branchcode     => $library->id,
348
            date           => \'NOW()',
349
            debit_type_code => 'OVERDUE',
350
            status         => 'UNRETURNED',
351
            interface      => 'cli',
352
            amount => '1',
353
            amountoutstanding => '1',
354
        }
355
    )->store();
356
    my $credit_renew = $account->add_credit({ amount => 100, user_id => $patron->id, interface => 'commandline' });
357
    $debits_renew = Koha::Account::Lines->search({ accountlines_id => $accountline->id })->as_list;
358
    $credit_renew->apply( { debits => $debits_renew, offset_type => 'Manual Credit' } );
334
    is( $called, 1, 'RenewAccruingItemWhenPaid causes C4::Circulation::AddRenew to be called when appropriate' );
359
    is( $called, 1, 'RenewAccruingItemWhenPaid causes C4::Circulation::AddRenew to be called when appropriate' );
335
360
336
    $schema->storage->txn_rollback;
361
    $schema->storage->txn_rollback;
Lines 387-393 subtest 'Keep account info when related patron, staff, item or cash_register is Link Here
387
412
388
subtest 'Renewal related tests' => sub {
413
subtest 'Renewal related tests' => sub {
389
414
390
    plan tests => 7;
415
    plan tests => 8;
391
416
392
    $schema->storage->txn_begin;
417
    $schema->storage->txn_begin;
393
418
Lines 428-437 subtest 'Renewal related tests' => sub { Link Here
428
453
429
454
430
    t::lib::Mocks::mock_preference( 'RenewAccruingItemWhenPaid', 0 );
455
    t::lib::Mocks::mock_preference( 'RenewAccruingItemWhenPaid', 0 );
431
    is ($line->renew_item, undef, 'Attempt to renew fails when syspref is not set');
456
    is ($line->renew_item({ interface => 'intranet' }), undef, 'Attempt to renew fails when syspref is not set');
432
    t::lib::Mocks::mock_preference( 'RenewAccruingItemWhenPaid', 1 );
457
    t::lib::Mocks::mock_preference( 'RenewAccruingItemWhenPaid', 1 );
458
    t::lib::Mocks::mock_preference( 'RenewAccruingItemInOpac', 0 );
459
    is ($line->renew_item({ interface => 'opac' }), undef, 'Attempt to renew fails when syspref is not set - OPAC');
460
    t::lib::Mocks::mock_preference( 'RenewAccruingItemInOpac', 1 );
433
    is_deeply(
461
    is_deeply(
434
        $line->renew_item,
462
        $line->renew_item({ interface => 'intranet' }),
435
        {
463
        {
436
            itemnumber => $item->itemnumber,
464
            itemnumber => $item->itemnumber,
437
            error      => 'too_many',
465
            error      => 'too_many',
438
- 

Return to bug 27927