Bug 9259: Use is instead of is_deeply
[koha.git] / t / db_dependent / Fines.t
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4
5 use C4::Context;
6 use C4::Overdues;
7 use Koha::Database;
8 use Koha::DateUtils;
9
10 use Test::More tests => 5;
11
12 #Start transaction
13 my $dbh = C4::Context->dbh;
14 my $schema = Koha::Database->new()->schema();
15
16 $dbh->{RaiseError} = 1;
17 $dbh->{AutoCommit} = 0;
18
19 $dbh->do(q|DELETE FROM issuingrules|);
20
21 my $issuingrule = $schema->resultset('Issuingrule')->create(
22     {
23         categorycode           => '*',
24         itemtype               => '*',
25         branchcode             => '*',
26         fine                   => 1,
27         finedays               => 0,
28         chargeperiod           => 7,
29         chargeperiod_charge_at => 0,
30         lengthunit             => 'days',
31         issuelength            => 1,
32     }
33 );
34
35 ok( $issuingrule, 'Issuing rule created' );
36
37 my $period_start = dt_from_string('2000-01-01');
38 my $period_end = dt_from_string('2000-01-05');
39
40 my ( $fine ) = CalcFine( {}, q{}, q{}, $period_start, $period_end  );
41 is( $fine, 0, '4 days overdue, charge period 7 days, charge at end of interval gives fine of $0' );
42
43 $period_end = dt_from_string('2000-01-10');
44 ( $fine ) = CalcFine( {}, q{}, q{}, $period_start, $period_end  );
45 is( $fine, 1, '9 days overdue, charge period 7 days, charge at end of interval gives fine of $1' );
46
47 # Test charging fine at the *beginning* of each charge period
48 $issuingrule->update( { chargeperiod_charge_at => 1 } );
49
50 $period_end = dt_from_string('2000-01-05');
51 ( $fine ) = CalcFine( {}, q{}, q{}, $period_start, $period_end  );
52 is( $fine, 1, '4 days overdue, charge period 7 days, charge at start of interval gives fine of $1' );
53
54 $period_end = dt_from_string('2000-01-10');
55 ( $fine ) = CalcFine( {}, q{}, q{}, $period_start, $period_end  );
56 is( $fine, 2, '9 days overdue, charge period 7 days, charge at start of interval gives fine of $2' );