Tomas Cohen Arazi
15ed13845f
This patch removes the requirement for this tests for the DB to include at least 10 borrowers to pass. Borrowers are now created on each run using t::lib::TestBuilder and a loop. Bonus: some tiny changes to tidy the file. To test: - Run: $ prove t/db_dependent/CourseReserves.t SUCCESS => Tests pass with and without the patch. - Sign off :-D Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
139 lines
5.1 KiB
Perl
Executable file
139 lines
5.1 KiB
Perl
Executable file
#!/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 => 26;
|
|
|
|
use Koha::Database;
|
|
use t::lib::TestBuilder;
|
|
|
|
BEGIN {
|
|
use_ok('C4::Biblio');
|
|
use_ok('C4::Context');
|
|
use_ok('C4::CourseReserves', qw/:all/);
|
|
use_ok('C4::Items', qw(AddItem));
|
|
use_ok('MARC::Field');
|
|
use_ok('MARC::Record');
|
|
}
|
|
|
|
my $schema = Koha::Database->schema;
|
|
$schema->storage->txn_begin;
|
|
my $builder = t::lib::TestBuilder->new;
|
|
my $dbh = C4::Context->dbh;
|
|
$dbh->{RaiseError} = 1;
|
|
|
|
my $branchcode = $builder->build( { source => 'Branch' } )->{branchcode};
|
|
my $itemtype = $builder->build(
|
|
{ source => 'Itemtype', value => { notforloan => undef } } )->{itemtype};
|
|
|
|
# Create 10 sample borrowers
|
|
my @borrowers = ();
|
|
foreach (1..10) {
|
|
push @borrowers, $builder->build({ source => 'Borrower' });
|
|
}
|
|
|
|
# Create the a record with an item
|
|
my $record = MARC::Record->new;
|
|
my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio($record, '');
|
|
my ( undef, undef, $itemnumber ) = C4::Items::AddItem(
|
|
{ homebranch => $branchcode,
|
|
holdingbranch => $branchcode,
|
|
itype => $itemtype
|
|
},
|
|
$biblionumber
|
|
);
|
|
|
|
my $course_id = ModCourse(
|
|
course_name => "Test Course",
|
|
staff_note => "Test staff note",
|
|
public_note => "Test public note",
|
|
);
|
|
|
|
ok( $course_id, "ModCourse created course successfully" );
|
|
|
|
$course_id = ModCourse(
|
|
course_id => $course_id,
|
|
staff_note => "Test staff note 2",
|
|
enabled => 'no',
|
|
);
|
|
|
|
my $course = GetCourse($course_id);
|
|
|
|
ok( $course->{'course_name'} eq "Test Course", "GetCourse returned correct course" );
|
|
ok( $course->{'staff_note'} eq "Test staff note 2", "ModCourse updated course succesfully" );
|
|
is( $course->{'enabled'}, 'no', "Test Course is disabled" );
|
|
|
|
my $courses = GetCourses();
|
|
is( ref($courses), 'ARRAY', "GetCourses returns an array" );
|
|
my @match = map {$_->{course_name} eq 'Test Course'} @$courses;
|
|
ok( scalar(@match) > 0, "GetCourses returns valid array of course data" );
|
|
|
|
ModCourseInstructors( mode => 'add', course_id => $course_id, borrowernumbers => [ $borrowers[0]->{'borrowernumber'} ] );
|
|
$course = GetCourse($course_id);
|
|
ok( $course->{'instructors'}->[0]->{'borrowernumber'} == $borrowers[0]->{'borrowernumber'}, "ModCourseInstructors added instructors correctly" );
|
|
|
|
my $course_instructors = GetCourseInstructors($course_id);
|
|
ok( $course_instructors->[0]->{'borrowernumber'} eq $borrowers[0]->{'borrowernumber'}, "GetCourseInstructors returns valid data" );
|
|
|
|
my $ci_id = ModCourseItem( 'itemnumber' => $itemnumber );
|
|
ok( $ci_id, "ModCourseItem returned valid data" );
|
|
|
|
my $course_item = GetCourseItem( 'ci_id' => $ci_id );
|
|
ok( $course_item->{'itemnumber'} eq $itemnumber, "GetCourseItem returns valid data" );
|
|
|
|
my $cr_id = ModCourseReserve( 'course_id' => $course_id, 'ci_id' => $ci_id );
|
|
ok( $cr_id, "ModCourseReserve returns valid data" );
|
|
|
|
my $course_reserve = GetCourseReserve( 'course_id' => $course_id, 'ci_id' => $ci_id );
|
|
ok( $course_reserve->{'cr_id'} eq $cr_id, "GetCourseReserve returns valid data" );
|
|
|
|
my $course_reserves = GetCourseReserves( 'course_id' => $course_id );
|
|
ok( $course_reserves->[0]->{'ci_id'} eq $ci_id, "GetCourseReserves returns valid data." );
|
|
|
|
## Check for regression of Bug 15530
|
|
$course_id = ModCourse(
|
|
course_id => $course_id,
|
|
enabled => 'yes',
|
|
);
|
|
$course = GetCourse($course_id);
|
|
is( $course->{'enabled'}, 'yes', "Test Course is enabled" );
|
|
$course_item = GetCourseItem( 'ci_id' => $ci_id );
|
|
is( $course_item->{enabled}, 'yes', "Course item is enabled after modding disabled course" );
|
|
my $disabled_course_id = ModCourse(
|
|
course_name => "Disabled Course",
|
|
enabled => 'no',
|
|
);
|
|
my $disabled_course = GetCourse( $disabled_course_id );
|
|
is( $disabled_course->{'enabled'}, 'no', "Disabled Course is disabled" );
|
|
my $cr_id2 = ModCourseReserve( 'course_id' => $disabled_course_id, 'ci_id' => $ci_id );
|
|
$course_item = GetCourseItem( 'ci_id' => $ci_id );
|
|
is( $course_item->{enabled}, 'yes', "Course item is enabled after modding disabled course" );
|
|
## End check for regression of Bug 15530
|
|
|
|
my $info = GetItemCourseReservesInfo( itemnumber => $itemnumber );
|
|
ok( $info->[0]->{'itemnumber'} eq $itemnumber, "GetItemReservesInfo returns valid data." );
|
|
|
|
DelCourseReserve( 'cr_id' => $cr_id );
|
|
$course_reserve = GetCourseReserve( 'cr_id' => $cr_id );
|
|
ok( !defined( $course_reserve->{'cr_id'} ), "DelCourseReserve functions correctly" );
|
|
|
|
DelCourse($course_id);
|
|
$course = GetCourse($course_id);
|
|
ok( !defined( $course->{'course_id'} ), "DelCourse deleted course successfully" );
|
|
|
|
$schema->storage->txn_rollback;
|