Bug 17829: Move GetMember to Koha::Patron
[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 use C4::Items;
9 use Koha::DateUtils;
10 use Koha::Patrons;
11 use t::lib::TestBuilder;
12
13 use Test::More tests => 8;
14 C4::Context->_new_userenv(1234567);
15 C4::Context->set_userenv(91, 'CLIstaff', '23529001223661', 'CPL',
16                          'CPL', 'CPL', '', 'cc@cscnet.co.uk');
17
18
19 my $test_patron = '23529001223651';
20 my $test_item_fic = '502326000402';
21 my $test_item_24 = '502326000404';
22 my $test_item_48 = '502326000403';
23
24 my $builder = t::lib::TestBuilder->new;
25 my $borrower1 = $builder->build_object({ class => 'Koha::Patrons', value => { cardnumber => $test_patron } });
26 my $item1 = GetItem (undef,$test_item_fic);
27
28 SKIP: {
29     skip 'Missing test borrower or item, skipping tests', 8
30       unless ( defined $borrower1 && defined $item1 );
31
32     for my $item_barcode ( $test_item_fic, $test_item_24, $test_item_48 ) {
33         my $duedate = try_issue( $test_patron, $item_barcode );
34         isa_ok( $duedate, 'DateTime' );
35         if ( $item_barcode eq $test_item_fic ) {
36             is( $duedate->hour(),   23, "daily loan hours = 23" );
37             is( $duedate->minute(), 59, "daily loan mins = 59" );
38         }
39         my $ret_ok = try_return($item_barcode);
40         is( $ret_ok, 1, 'Return succeeded' );
41     }
42 }
43
44 sub try_issue {
45     my ($cardnumber, $item ) = @_;
46     my $issuedate = '2011-05-16';
47     my $borrower = Koha::Patrons->find( { cardnumber => $cardnumber } )->unblessed;
48     my ($issuingimpossible,$needsconfirmation) = CanBookBeIssued( $borrower, $item );
49     my $issue = AddIssue($borrower, $item, undef, 0, $issuedate);
50     return dt_from_string( $issue->due_date() );
51 }
52
53 sub try_return {
54     my $barcode = shift;
55     my ($ret, $messages, $iteminformation, $borrower) = AddReturn($barcode);
56     return $ret;
57 }