Bug 18330: Handle date-time in Koha::Object->TO_JSON
[koha.git] / t / db_dependent / rollingloans.t
index af9e454..75ec17f 100644 (file)
@@ -1,12 +1,18 @@
 
-use strict;
-use warnings;
-use 5.010;
+use Modern::Perl;
 use C4::Context;
 use C4::Circulation;
 use C4::Members;
+use C4::Items;
+use Koha::DateUtils;
+use Koha::Patrons;
+use t::lib::TestBuilder;
 
 use Test::More tests => 8;
+
+my $schema = Koha::Database->new->schema;
+$schema->storage->txn_begin;
+
 C4::Context->_new_userenv(1234567);
 C4::Context->set_userenv(91, 'CLIstaff', '23529001223661', 'CPL',
                          'CPL', 'CPL', '', 'cc@cscnet.co.uk');
@@ -17,25 +23,33 @@ my $test_item_fic = '502326000402';
 my $test_item_24 = '502326000404';
 my $test_item_48 = '502326000403';
 
-for my $item_barcode ( $test_item_fic, $test_item_24, $test_item_48) {
-    my $duedate = try_issue($test_patron, $item_barcode);
-    isa_ok($duedate, 'DateTime');
-    if ($item_barcode eq $test_item_fic) {
-        is($duedate->hour(), 23, "daily loan hours = 23");
-        is($duedate->minute(), 59, "daily loan mins = 59");
+my $builder = t::lib::TestBuilder->new;
+my $borrower1 = $builder->build_object({ class => 'Koha::Patrons', value => { cardnumber => $test_patron } });
+my $item1 = GetItem (undef,$test_item_fic);
+
+SKIP: {
+    skip 'Missing test borrower or item, skipping tests', 8
+      unless ( defined $borrower1 && defined $item1 );
+
+    for my $item_barcode ( $test_item_fic, $test_item_24, $test_item_48 ) {
+        my $duedate = try_issue( $test_patron, $item_barcode );
+        isa_ok( $duedate, 'DateTime' );
+        if ( $item_barcode eq $test_item_fic ) {
+            is( $duedate->hour(),   23, "daily loan hours = 23" );
+            is( $duedate->minute(), 59, "daily loan mins = 59" );
+        }
+        my $ret_ok = try_return($item_barcode);
+        is( $ret_ok, 1, 'Return succeeded' );
     }
-    my $ret_ok = try_return($item_barcode);
-    is($ret_ok, 1, 'Return succeeded');
 }
 
-
 sub try_issue {
     my ($cardnumber, $item ) = @_;
     my $issuedate = '2011-05-16';
-    my $borrower = GetMemberDetails(0, $cardnumber);
+    my $borrower = Koha::Patrons->find( { cardnumber => $cardnumber } )->unblessed;
     my ($issuingimpossible,$needsconfirmation) = CanBookBeIssued( $borrower, $item );
-       my $due_date = AddIssue($borrower, $item, undef, 0, $issuedate);
-    return $due_date;
+    my $issue = AddIssue($borrower, $item, undef, 0, $issuedate);
+    return dt_from_string( $issue->due_date() );
 }
 
 sub try_return {