5 use Test::More tests => 5;
10 use t::lib::TestBuilder;
12 use_ok('C4::Circulation');
14 my $schema = Koha::Database->new->schema;
15 $schema->storage->txn_begin;
16 my $builder = t::lib::TestBuilder->new;
18 my $categorycode = 'B';
20 my $branchcode = 'FPL';
22 my $renewalperiod = 5;
23 my $lengthunit = 'days';
25 Koha::Database->schema->resultset('Issuingrule')->create({
26 categorycode => $categorycode,
27 itemtype => $itemtype,
28 branchcode => $branchcode,
29 issuelength => $issuelength,
30 renewalperiod => $renewalperiod,
31 lengthunit => $lengthunit,
34 #Set syspref ReturnBeforeExpiry = 1 and useDaysMode = 'Days'
35 t::lib::Mocks::mock_preference('ReturnBeforeExpiry', 1);
36 t::lib::Mocks::mock_preference('useDaysMode', 'Days');
38 my $dateexpiry = '2013-01-01';
40 my $borrower = {categorycode => 'B', dateexpiry => $dateexpiry};
41 my $start_date = DateTime->new({year => 2013, month => 2, day => 9});
42 my $date = C4::Circulation::CalcDateDue( $start_date, $itemtype, $branchcode, $borrower );
43 is($date, $dateexpiry . 'T23:59:00', 'date expiry');
44 $date = C4::Circulation::CalcDateDue( $start_date, $itemtype, $branchcode, $borrower, 1 );
47 #Set syspref ReturnBeforeExpiry = 1 and useDaysMode != 'Days'
48 t::lib::Mocks::mock_preference('ReturnBeforeExpiry', 1);
49 t::lib::Mocks::mock_preference('useDaysMode', 'noDays');
51 $borrower = {categorycode => 'B', dateexpiry => $dateexpiry};
52 $start_date = DateTime->new({year => 2013, month => 2, day => 9});
53 $date = C4::Circulation::CalcDateDue( $start_date, $itemtype, $branchcode, $borrower );
54 is($date, $dateexpiry . 'T23:59:00', 'date expiry');
56 $date = C4::Circulation::CalcDateDue( $start_date, $itemtype, $branchcode, $borrower, 1 );
59 #Set syspref ReturnBeforeExpiry = 0 and useDaysMode = 'Days'
60 t::lib::Mocks::mock_preference('ReturnBeforeExpiry', 0);
61 t::lib::Mocks::mock_preference('useDaysMode', 'Days');
63 $borrower = {categorycode => 'B', dateexpiry => $dateexpiry};
64 $start_date = DateTime->new({year => 2013, month => 2, day => 9});
65 $date = C4::Circulation::CalcDateDue( $start_date, $itemtype, $branchcode, $borrower );
66 is($date, '2013-02-' . (9 + $issuelength) . 'T23:59:00', "date expiry ( 9 + $issuelength )");
68 $date = C4::Circulation::CalcDateDue( $start_date, $itemtype, $branchcode, $borrower, 1 );
69 is($date, '2013-02-' . (9 + $renewalperiod) . 'T23:59:00', "date expiry ( 9 + $renewalperiod )");
71 $schema->storage->txn_rollback;