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

(-)a/t/db_dependent/Koha/Account.t (-2 / +122 lines)
Lines 19-25 Link Here
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
21
22
use Test::More tests => 4;
22
use Test::More tests => 5;
23
23
24
use Koha::Account;
24
use Koha::Account;
25
use Koha::Account::Lines;
25
use Koha::Account::Lines;
Lines 225-227 subtest 'lines() tests' => sub { Link Here
225
225
226
    $schema->storage->txn_rollback;
226
    $schema->storage->txn_rollback;
227
};
227
};
228
- 
228
229
subtest 'normalize_balance' => sub {
230
231
    plan tests => 3;
232
233
    subtest 'more credit than debit' => sub {
234
235
        plan tests => 6;
236
237
        $schema->storage->txn_begin;
238
239
        my $patron  = $builder->build_object({ class => 'Koha::Patrons' });
240
        my $account = $patron->account;
241
242
        # Add Credits
243
        $account->add_credit({ amount => 1 });
244
        $account->add_credit({ amount => 2 });
245
        $account->add_credit({ amount => 3 });
246
        $account->add_credit({ amount => 4 });
247
        $account->add_credit({ amount => 5 });
248
249
        # Add Debits TODO: replace for calls to add_debit when time comes
250
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store;
251
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store;
252
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store;
253
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4 })->store;
254
255
        # Paid Off
256
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store;
257
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store;
258
259
        is( $account->balance(), -5, "Account balance is -5" );
260
        is( $account->outstanding_debits->total_outstanding, 10, 'Outstanding debits sum 10' );
261
        is( $account->outstanding_credits->total_outstanding, -15, 'Outstanding credits sum -15' );
262
263
        $account->normalize_balance();
264
265
        is( $account->balance(), -5, "Account balance is -5" );
266
        is( $account->outstanding_debits->total_outstanding, 0, 'No outstanding debits' );
267
        is( $account->outstanding_credits->total_outstanding, -5, 'Outstanding credits sum -5' );
268
269
        $schema->storage->txn_rollback;
270
    };
271
272
    subtest 'same debit than credit' => sub {
273
274
        plan tests => 6;
275
276
        $schema->storage->txn_begin;
277
278
        my $patron  = $builder->build_object({ class => 'Koha::Patrons' });
279
        my $account = $patron->account;
280
281
        # Add Credits
282
        $account->add_credit({ amount => 1 });
283
        $account->add_credit({ amount => 2 });
284
        $account->add_credit({ amount => 3 });
285
        $account->add_credit({ amount => 4 });
286
287
        # Add Debits TODO: replace for calls to add_debit when time comes
288
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store;
289
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store;
290
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store;
291
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4 })->store;
292
293
        # Paid Off
294
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store;
295
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store;
296
297
        is( $account->balance(), 0, "Account balance is 0" );
298
        is( $account->outstanding_debits->total_outstanding, 10, 'Outstanding debits sum 10' );
299
        is( $account->outstanding_credits->total_outstanding, -10, 'Outstanding credits sum -10' );
300
301
        $account->normalize_balance();
302
303
        is( $account->balance(), 0, "Account balance is 0" );
304
        is( $account->outstanding_debits->total_outstanding, 0, 'No outstanding debits' );
305
        is( $account->outstanding_credits->total_outstanding, 0, 'Outstanding credits sum 0' );
306
307
        $schema->storage->txn_rollback;
308
    };
309
310
    subtest 'more debit than credit' => sub {
311
312
        plan tests => 6;
313
314
        $schema->storage->txn_begin;
315
316
        my $patron  = $builder->build_object({ class => 'Koha::Patrons' });
317
        my $account = $patron->account;
318
319
        # Add Credits
320
        $account->add_credit({ amount => 1 });
321
        $account->add_credit({ amount => 2 });
322
        $account->add_credit({ amount => 3 });
323
        $account->add_credit({ amount => 4 });
324
325
        # Add Debits TODO: replace for calls to add_debit when time comes
326
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 1 })->store;
327
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 2, amountoutstanding => 2 })->store;
328
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 3, amountoutstanding => 3 })->store;
329
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 4, amountoutstanding => 4 })->store;
330
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 5, amountoutstanding => 5 })->store;
331
332
        # Paid Off
333
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store;
334
        Koha::Account::Line->new({ borrowernumber => $patron->id, amount => 1, amountoutstanding => 0 })->store;
335
336
        is( $account->balance(), 5, "Account balance is 5" );
337
        is( $account->outstanding_debits->total_outstanding, 15, 'Outstanding debits sum 15' );
338
        is( $account->outstanding_credits->total_outstanding, -10, 'Outstanding credits sum -10' );
339
340
        $account->normalize_balance();
341
342
        is( $account->balance(), 5, "Account balance is 5" );
343
        is( $account->outstanding_debits->total_outstanding, 5, 'Outstanding debits sum 5' );
344
        is( $account->outstanding_credits->total_outstanding, 0, 'Outstanding credits sum 0' );
345
346
        $schema->storage->txn_rollback;
347
    };
348
};

Return to bug 21896