From 5c014d2f7f2f9d2b64d0467adaaeb4a7b54d27d3 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 10 Jul 2015 14:15:42 +0100 Subject: [PATCH] Bug 8723: Cover the existing behavior This patch cover the MoveItemFromBiblio subroutine Signed-off-by: Nick Clemens Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi (cherry picked from commit cb4ce631c316a41ac47a17bfdaa4e5591e0e37df) Signed-off-by: Chris Cormack (cherry picked from commit 3caa3703c272be52b6cf161a086271ca9be3eb01) Signed-off-by: Liz Rea --- t/db_dependent/Items/MoveItemFromBiblio.t | 59 +++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 t/db_dependent/Items/MoveItemFromBiblio.t diff --git a/t/db_dependent/Items/MoveItemFromBiblio.t b/t/db_dependent/Items/MoveItemFromBiblio.t new file mode 100644 index 0000000000..d0b10d7a44 --- /dev/null +++ b/t/db_dependent/Items/MoveItemFromBiblio.t @@ -0,0 +1,59 @@ +#!/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 . + +use Modern::Perl; +use Test::More tests => 5; + +use C4::Items; + +use t::lib::TestBuilder; + +my $builder = t::lib::TestBuilder->new; + +# NOTE This is a trick, if we want to populate the biblioitems table, we should not create a Biblio but a Biblioitem +my $from_biblio = $builder->build( { source => 'Biblioitem', } )->{_fk}{biblionumber}; +my $to_biblio = $builder->build( { source => 'Biblioitem', } )->{_fk}{biblionumber}; +my $item1 = $builder->build( + { source => 'Item', + value => { biblionumber => $from_biblio->{biblionumber}, }, + } +); +my $item2 = $builder->build( + { source => 'Item', + value => { biblionumber => $from_biblio->{biblionumber}, }, + } +); +my $item3 = $builder->build( + { source => 'Item', + value => { biblionumber => $to_biblio->{biblionumber}, }, + } +); + +my $to_biblionumber_after_moved = C4::Items::MoveItemFromBiblio( $item2->{itemnumber}, $from_biblio->{biblionumber}, $to_biblio->{biblionumber} ); + +is( $to_biblionumber_after_moved, $to_biblio->{biblionumber}, 'MoveItemFromBiblio should return the to_biblionumber if success' ); + +$to_biblionumber_after_moved = C4::Items::MoveItemFromBiblio( $item2->{itemnumber}, $from_biblio->{biblionumber}, $to_biblio->{biblionumber} ); + +is( $to_biblionumber_after_moved, undef, 'MoveItemFromBiblio should return undef if the move has failed. If called twice, the item is not attached to the first biblio anymore' ); + +my $get_item1 = C4::Items::GetItem( $item1->{itemnumber} ); +is( $get_item1->{biblionumber}, $from_biblio->{biblionumber}, 'The item1 should not have been moved' ); +my $get_item2 = C4::Items::GetItem( $item2->{itemnumber} ); +is( $get_item2->{biblionumber}, $to_biblio->{biblionumber}, 'The item2 should have been moved' ); +my $get_item3 = C4::Items::GetItem( $item3->{itemnumber} ); +is( $get_item3->{biblionumber}, $to_biblio->{biblionumber}, 'The item3 should not have been moved' ); -- 2.39.5