5 use Test
::More tests
=> 7;
12 t
::lib
::Mocks
::mock_dbh
;
15 use_ok
('C4::Circulation');
17 my $dbh = C4
::Context
->dbh();
20 my $renewalperiod = 5;
21 my $lengthunit = 'days';
24 issuelength
=> $issuelength,
25 renewalperiod
=> $renewalperiod,
26 lengthunit
=> $lengthunit
40 my $mock_loan_length = [
41 ['issuelength', 'renewalperiod', 'lengthunit'],
42 [$issuelength, $renewalperiod, $lengthunit]
45 my $categorycode = 'B';
47 my $branchcode = 'FPL';
50 $dbh->{mock_add_resultset
} = $mock_loan_length;
51 $loanlength = C4
::Circulation
::GetLoanLength
($categorycode, $itemtype, $branchcode);
52 is_deeply
($loanlength, $expected, 'first matches');
54 $dbh->{mock_add_resultset
} = $mock_undef;
55 $loanlength = C4
::Circulation
::GetLoanLength
($categorycode, $itemtype, $branchcode);
56 is_deeply
($loanlength, $default, 'none matches');
60 #Set syspref ReturnBeforeExpiry = 1 and useDaysMode = 'Days'
61 t
::lib
::Mocks
::mock_preference
('ReturnBeforeExpiry', 1);
62 t
::lib
::Mocks
::mock_preference
('useDaysMode', 'Days');
64 my $dateexpiry = '2013-01-01';
66 my $borrower = {categorycode
=> 'B', dateexpiry
=> $dateexpiry};
67 my $start_date = DateTime
->new({year
=> 2013, month
=> 2, day
=> 9});
68 $dbh->{mock_add_resultset
} = $mock_loan_length;
69 my $date = C4
::Circulation
::CalcDateDue
( $start_date, $itemtype, $branchcode, $borrower );
70 is
($date, $dateexpiry . 'T23:59:00', 'date expiry');
71 $dbh->{mock_add_resultset
} = $mock_loan_length;
72 $date = C4
::Circulation
::CalcDateDue
( $start_date, $itemtype, $branchcode, $borrower, 1 );
75 #Set syspref ReturnBeforeExpiry = 1 and useDaysMode != 'Days'
76 t
::lib
::Mocks
::mock_preference
('ReturnBeforeExpiry', 1);
77 t
::lib
::Mocks
::mock_preference
('useDaysMode', 'noDays');
79 $borrower = {categorycode
=> 'B', dateexpiry
=> $dateexpiry};
80 $start_date = DateTime
->new({year
=> 2013, month
=> 2, day
=> 9});
81 $dbh->{mock_add_resultset
} = $mock_loan_length;
82 $date = C4
::Circulation
::CalcDateDue
( $start_date, $itemtype, $branchcode, $borrower );
83 is
($date, $dateexpiry . 'T23:59:00', 'date expiry');
85 $dbh->{mock_add_resultset
} = $mock_loan_length;
86 $date = C4
::Circulation
::CalcDateDue
( $start_date, $itemtype, $branchcode, $borrower, 1 );
89 #Set syspref ReturnBeforeExpiry = 0 and useDaysMode = 'Days'
90 t
::lib
::Mocks
::mock_preference
('ReturnBeforeExpiry', 0);
91 t
::lib
::Mocks
::mock_preference
('useDaysMode', 'Days');
93 $borrower = {categorycode
=> 'B', dateexpiry
=> $dateexpiry};
94 $start_date = DateTime
->new({year
=> 2013, month
=> 2, day
=> 9});
95 $dbh->{mock_add_resultset
} = $mock_loan_length;
96 $date = C4
::Circulation
::CalcDateDue
( $start_date, $itemtype, $branchcode, $borrower );
97 is
($date, '2013-02-' . (9 + $issuelength) . 'T23:59:00', "date expiry ( 9 + $issuelength )");
99 $dbh->{mock_add_resultset
} = $mock_loan_length;
100 $date = C4
::Circulation
::CalcDateDue
( $start_date, $itemtype, $branchcode, $borrower, 1 );
101 is
($date, '2013-02-' . (9 + $renewalperiod) . 'T23:59:00', "date expiry ( 9 + $renewalperiod )");