Bug 17553: Move existing tests
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 4 Nov 2016 10:23:56 +0000 (10:23 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 3 Apr 2018 14:43:06 +0000 (11:43 -0300)
Signed-off-by: Benjamin Rokseth <benjamin.rokseth@deichman.no>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
t/db_dependent/Koha/Patrons.t
t/db_dependent/Members/GetOverdues.t [deleted file]

index c494241..40d36ee 100644 (file)
@@ -27,6 +27,7 @@ use JSON;
 
 use C4::Biblio;
 use C4::Circulation;
+
 use C4::Members;
 use C4::Circulation;
 
@@ -1119,6 +1120,74 @@ subtest 'is_child | is_adult' => sub {
     $patron_other->delete;
 };
 
+subtest 'get_overdues' => sub {
+    plan tests => 7;
+
+    my $library = $builder->build( { source => 'Branch' } );
+    my ($biblionumber_1) = AddBiblio( MARC::Record->new, '' );
+    my $item_1 = $builder->build(
+        {
+            source => 'Item',
+            value  => {
+                homebranch    => $library->{branchcode},
+                holdingbranch => $library->{branchcode},
+                biblionumber  => $biblionumber_1
+            }
+        }
+    );
+    my $item_2 = $builder->build(
+        {
+            source => 'Item',
+            value  => {
+                homebranch    => $library->{branchcode},
+                holdingbranch => $library->{branchcode},
+                biblionumber  => $biblionumber_1
+            }
+        }
+    );
+    my ($biblionumber_2) = AddBiblio( MARC::Record->new, '' );
+    my $item_3 = $builder->build(
+        {
+            source => 'Item',
+            value  => {
+                homebranch    => $library->{branchcode},
+                holdingbranch => $library->{branchcode},
+                biblionumber  => $biblionumber_2
+            }
+        }
+    );
+    my $patron = $builder->build(
+        {
+            source => 'Borrower',
+            value  => { branchcode => $library->{branchcode} }
+        }
+    );
+
+    my $module = new Test::MockModule('C4::Context');
+    $module->mock( 'userenv', sub { { branch => $library->{branchcode} } } );
+
+    AddIssue( $patron, $item_1->{barcode}, DateTime->now->subtract( days => 1 ) );
+    AddIssue( $patron, $item_2->{barcode}, DateTime->now->subtract( days => 5 ) );
+    AddIssue( $patron, $item_3->{barcode} );
+
+    $patron = Koha::Patrons->find( $patron->{borrowernumber} );
+    my $overdues = $patron->get_overdues;
+    is( $overdues->count, 2, 'Patron should have 2 overdues');
+    is( $overdues->next->itemnumber, $item_1->{itemnumber}, 'The issue should be returned in the same order as they have been done, first is correct' );
+    is( $overdues->next->itemnumber, $item_2->{itemnumber}, 'The issue should be returned in the same order as they have been done, second is correct' );
+
+    my $o = $overdues->reset->next;
+    my $unblessed_overdue = $o->unblessed_all_relateds;
+    is( exists( $unblessed_overdue->{issuedate} ), 1, 'Fields from the issues table should be filled' );
+    is( exists( $unblessed_overdue->{itemcallnumber} ), 1, 'Fields from the items table should be filled' );
+    is( exists( $unblessed_overdue->{title} ), 1, 'Fields from the biblio table should be filled' );
+    is( exists( $unblessed_overdue->{itemtype} ), 1, 'Fields from the biblioitems table should be filled' );
+
+    # Clean stuffs
+    $patron->checkouts->delete;
+    $patron->delete;
+};
+
 $retrieved_patron_1->delete;
 is( Koha::Patrons->search->count, $nb_of_patrons + 1, 'Delete should have deleted the patron' );
 
diff --git a/t/db_dependent/Members/GetOverdues.t b/t/db_dependent/Members/GetOverdues.t
deleted file mode 100644 (file)
index c18726b..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/perl
-
-# This file is part of Koha.
-#
-# Koha is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# Koha is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Koha; if not, see <http://www.gnu.org/licenses>.
-
-use Modern::Perl;
-
-use Test::More tests => 3;
-use Test::MockModule;
-
-use t::lib::TestBuilder;
-
-use C4::Biblio;
-use C4::Items;
-use C4::Members;
-use C4::Circulation;
-use Koha::Libraries;
-use Koha::Patrons;
-use MARC::Record;
-
-my $schema = Koha::Database->schema;
-my $dbh = C4::Context->dbh;
-$schema->storage->txn_begin;
-
-my $builder = t::lib::TestBuilder->new;
-
-$dbh->do(q|DELETE FROM issues|);
-$dbh->do(q|DELETE FROM borrowers|);
-$dbh->do(q|DELETE FROM items|);
-$dbh->do(q|DELETE FROM branches|);
-$dbh->do(q|DELETE FROM biblio|);
-$dbh->do(q|DELETE FROM categories|);
-
-my $branchcode   = $builder->build( { source => 'Branch' } )->{branchcode};
-my $categorycode = $builder->build( { source => 'Category' } )->{categorycode};
-my $itemtype     = $builder->build( { source => 'Itemtype' } )->{itemtype};
-
-my %item_infos = (
-    homebranch    => $branchcode,
-    holdingbranch => $branchcode,
-    itype         => $itemtype
-);
-
-my ($biblionumber1) = AddBiblio( MARC::Record->new, '' );
-my $itemnumber1 =
-  AddItem( { barcode => '0101', %item_infos }, $biblionumber1 );
-my $itemnumber2 =
-  AddItem( { barcode => '0102', %item_infos }, $biblionumber1 );
-
-my ($biblionumber2) = AddBiblio( MARC::Record->new, '' );
-my $itemnumber3 =
-  AddItem( { barcode => '0103', %item_infos }, $biblionumber2 );
-
-my $borrowernumber =
-  AddMember( categorycode => $categorycode, branchcode => $branchcode );
-my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
-
-my $module = new Test::MockModule('C4::Context');
-$module->mock( 'userenv', sub { { branch => $branchcode } } );
-
-AddIssue( $borrower, '0101', DateTime->now->subtract( days =>  1 ) );
-AddIssue( $borrower, '0102', DateTime->now->subtract( days =>  5 ) );
-AddIssue( $borrower, '0103' );
-
-my $overdues = C4::Members::GetOverduesForPatron( $borrowernumber );
-is( @$overdues, 2, 'GetOverduesForPatron returns the correct number of elements' );
-is( $overdues->[0]->{itemnumber}, $itemnumber1, 'First overdue is correct' );
-is( $overdues->[1]->{itemnumber}, $itemnumber2, 'Second overdue is correct' );