X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=t%2FImages.t;h=338a9030fa5dd4091550d78804d661326c4351c5;hb=c87adaf4f3802cb3d701529efc10fa65a70caac3;hp=c35d5bd44309e0cee6e9a78422dd210d62917d01;hpb=e5a24bbbdd0d0e9ff09bfaadfe4c4bb37312e7ec;p=koha.git diff --git a/t/Images.t b/t/Images.t index c35d5bd443..338a9030fa 100644 --- a/t/Images.t +++ b/t/Images.t @@ -1,54 +1,71 @@ #!/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. # -#Testing C4 Images +# 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 . + +use Modern::Perl; -use strict; -use warnings; -use Test::More tests => 7; +use Test::More; use Test::MockModule; +use Module::Load::Conditional qw/check_install/; + BEGIN { - use_ok('C4::Images'); + if ( check_install( module => 'Test::DBIx::Class' ) ) { + plan tests => 8; + } else { + plan skip_all => "Need Test::DBIx::Class" + } } -my $module = new Test::MockModule('C4::Context'); -$module->mock( - '_new_dbh', - sub { - my $dbh = DBI->connect( 'DBI:Mock:', '', '' ) - || die "Cannot create handle: $DBI::errstr\n"; - return $dbh; - } +use_ok('C4::Images'); + +use Test::DBIx::Class; + +# Make the code in the module use our mocked Koha::Schema/Koha::Database +my $db = Test::MockModule->new('Koha::Database'); +$db->mock( + # Schema() gives us the DB connection set up by Test::DBIx::Class + _new_schema => sub { return Schema(); } ); + +my $biblionumber = 2; my $images = [ - [ 'imagenumber', 'biblionumber', 'mimetype', 'imagefile', 'thumbnail' ], - [ 1, 2, 'gif', 'red', 001, 000 ], - [ 3, 2, 'jpeg', 'blue', 111, 110 ] + [ 1, $biblionumber, 'gif', 'imagefile1', 'thumbnail1' ], + [ 3, $biblionumber, 'jpeg', 'imagefile3', 'thumbnail3' ], ]; -my $dbh = C4::Context->dbh(); +fixtures_ok [ + Biblioimage => [ + [ 'imagenumber', 'biblionumber', 'mimetype', 'imagefile', 'thumbnail' ], + @$images, + ], +], 'add fixtures'; -$dbh->{mock_add_resultset} = $images; - -my $image = C4::Images::RetrieveImage(); +my $image = C4::Images::RetrieveImage(1); is( $image->{'imagenumber'}, 1, 'First imagenumber is 1' ); -is( $image->{'mimetype'}, 'gif', 'First mimetype is red' ); - -is( $image->{'thumbnail'}, 001, 'First thumbnail is 001' ); +is( $image->{'mimetype'}, 'gif', 'First mimetype is gif' ); -$image = C4::Images::RetrieveImage(); +is( $image->{'thumbnail'}, 'thumbnail1', 'First thumbnail is correct' ); -$image = C4::Images::RetrieveImage(); - -$dbh->{mock_add_resultset} = $images; - -my @imagenumbers = C4::Images::ListImagesForBiblio(); +my @imagenumbers = C4::Images::ListImagesForBiblio($biblionumber); is( $imagenumbers[0], 1, 'imagenumber is 1' ); is( $imagenumbers[1], 3, 'imagenumber is 3' ); -$dbh->{mock_add_resultset} = $images; - is( $imagenumbers[4], undef, 'imagenumber undef' ); +