From 8457d4c04ecc9ef5a7541d6f85304b2c80260f33 Mon Sep 17 00:00:00 2001 From: Fridolyn SOMERS Date: Tue, 18 Jun 2013 16:52:12 +0200 Subject: [PATCH] Bug 9728: XISBN unit test update Signed-off-by: Galen Charlton (cherry picked from commit b0941f9058fa96818fceaf2515742ab0f4bebbe1) Signed-off-by: Tomas Cohen Arazi Grabbed just the XISBN unit test updates. --- t/db_dependent/XISBN.t | 82 ++++++++++++++++++++++++++++-------------- 1 file changed, 56 insertions(+), 26 deletions(-) diff --git a/t/db_dependent/XISBN.t b/t/db_dependent/XISBN.t index 11159f6bdc..c9b72bad5f 100755 --- a/t/db_dependent/XISBN.t +++ b/t/db_dependent/XISBN.t @@ -1,12 +1,12 @@ #!/usr/bin/perl # -# This Koha test module is a stub! +# This Koha test module is a stub! # Add more tests here!!! -use strict; -use warnings; +use Modern::Perl; + # use Test::Class::Load qw ( t/db_dependent/ ); -use Test::More tests => 4; +use Test::More tests => 5; use MARC::Record; use C4::Biblio; use C4::XISBN; @@ -14,38 +14,68 @@ use Data::Dumper; use C4::Context; BEGIN { - use_ok('C4::XISBN'); + use_ok('C4::XISBN'); } # KohaTest::clear_test_database(); # KohaTest::create_test_database(); -my $isbn = '0590353403'; -my $isbn2 = '0684843897'; +my $context = C4::Context->new; -my $marc_record=MARC::Record->new; -my $field = MARC::Field->new('020','','','a' => $isbn); -$marc_record->append_fields($field); -my($biblionumber,$biblioitemnumber) = AddBiblio($marc_record,''); +my ( $biblionumber_tag, $biblionumber_subfield ) = + GetMarcFromKohaField( 'biblio.biblionumber', '' ); +my ( $isbn_tag, $isbn_subfield ) = + GetMarcFromKohaField( 'biblioitems.isbn', '' ); -my $marc_record=MARC::Record->new; -my $field = MARC::Field->new('020','','','a' => $isbn2); -$marc_record->append_fields($field); -my($biblionumber2,$biblioitemnumber2) = AddBiblio($marc_record,''); +# Harry Potter and the Sorcerer's Stone, 1st American ed. 1997 +my $isbn1 = '0590353403'; +# ThingISBN match : Silent Wing, First Edition 1998 +my $isbn2 = '0684843897'; +# XISBN match : Harry Potter and the Philosopher's Stone, Magic ed. 2000 +my $isbn3 = '1551923963'; +my $biblionumber1 = _add_biblio_with_isbn($isbn1); +my $biblionumber2 = _add_biblio_with_isbn($isbn2); +my $biblionumber3 = _add_biblio_with_isbn($isbn3); -my $trial = C4::XISBN::get_biblionumber_from_isbn($isbn); -is($trial->[0]->{biblionumber},$biblionumber,"It gets the correct biblionumber from the only isbn we have added."); +my $trial = C4::XISBN::get_biblionumber_from_isbn($isbn1); +is( $trial->[0]->{biblionumber}, + $biblionumber1, + "It gets the correct biblionumber from the only isbn we have added." ); -$trial = C4::XISBN::_get_biblio_from_xisbn($isbn); -is($trial->{biblionumber},$biblionumber,"Gets biblionumber like the previous test."); +$trial = C4::XISBN::_get_biblio_from_xisbn($isbn1); +is( $trial->{biblionumber}, + $biblionumber1, "Gets biblionumber like the previous test." ); -my $context = C4::Context->new(); -$context->set_preference('ThingISBN','on'); -diag C4::Context::preference('ThingISBN'); -my $var = C4::XISBN::get_xisbns($isbn); -is($var->[0]->{biblionumber},$biblionumber2,"Gets correct biblionumber from a book with a similar isbn."); +$context->set_preference( 'ThingISBN', 1 ); +$context->set_preference( 'XISBN', 0 ); +my $results_thingisbn = C4::XISBN::get_xisbns($isbn1); +is( $results_thingisbn->[0]->{biblionumber}, + $biblionumber2, + "Gets correct biblionumber from a book with a similar isbn using ThingISBN." ); + +$context->set_preference( 'ThingISBN', 0 ); +$context->set_preference( 'XISBN', 1 ); +my $results_xisbn = C4::XISBN::get_xisbns($isbn1); +is( $results_xisbn->[0]->{biblionumber}, + $biblionumber3, + "Gets correct biblionumber from a book with a similar isbn using XISBN." ); # clean up after ourselves -DelBiblio($biblionumber); -DelBiblio($biblionumber2); \ No newline at end of file +DelBiblio($biblionumber1); +DelBiblio($biblionumber2); +DelBiblio($biblionumber3); + +# Util subs + +# Add new biblio with isbn and return biblionumber +sub _add_biblio_with_isbn { + my $isbn = shift; + + my $marc_record = MARC::Record->new; + my $field = MARC::Field->new( $isbn_tag, '', '', $isbn_subfield => $isbn ); + $marc_record->append_fields($field); + my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $marc_record, '' ); + return $biblionumber; +} + -- 2.39.5