Merge remote-tracking branch 'origin/new/bug_7548'
[koha.git] / t / db_dependent / rollingloans.t
1
2 use strict;
3 use warnings;
4 use 5.010;
5 use C4::Context;
6 use C4::Circulation;
7 use C4::Members;
8
9 use Test::More tests => 8;
10 C4::Context->_new_userenv(1234567);
11 C4::Context->set_userenv(91, 'CLIstaff', '23529001223661', 'CPL',
12                          'CPL', 'CPL', '', 'cc@cscnet.co.uk');
13
14
15 my $test_patron = '23529001223651';
16 my $test_item_fic = '502326000402';
17 my $test_item_24 = '502326000404';
18 my $test_item_48 = '502326000403';
19
20 for my $item_barcode ( $test_item_fic, $test_item_24, $test_item_48) {
21     my $duedate = try_issue($test_patron, $item_barcode);
22     isa_ok($duedate, 'DateTime');
23     if ($item_barcode eq $test_item_fic) {
24         is($duedate->hour(), 23, "daily loan hours = 23");
25         is($duedate->minute(), 59, "daily loan mins = 59");
26     }
27     my $ret_ok = try_return($item_barcode);
28     is($ret_ok, 1, 'Return succeeded');
29 }
30
31
32 sub try_issue {
33     my ($cardnumber, $item ) = @_;
34     my $issuedate = '2011-05-16';
35     my $borrower = GetMemberDetails(0, $cardnumber);
36     my ($issuingimpossible,$needsconfirmation) = CanBookBeIssued( $borrower, $item );
37         my $due_date = AddIssue($borrower, $item, undef, 0, $issuedate);
38     return $due_date;
39 }
40
41 sub try_return {
42     my $barcode = shift;
43     my ($ret, $messages, $iteminformation, $borrower) = AddReturn($barcode);
44     return $ret;
45 }