From 70ec608f917664411c6fc3357ade58a6261dd86f Mon Sep 17 00:00:00 2001 From: Colin Campbell Date: Thu, 21 Jan 2016 11:30:31 +0000 Subject: [PATCH] Bug 15479 Add tests for ILS.pm This patch specifically adds a test for the sub added to resolve Bug 15479. As no test script existed to add this two added one which also tests that ILS objects can be instantiated correctly and offer the required interface NOTE: This does not apply without the first patch. Comment #3 suggested a unit test that would fail before and pass after. So while this code is good, it missed the before case. -- mtompset Signed-off-by: Mark Tompsett Signed-off-by: Kyle M Hall Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com (cherry picked from commit df4b1552211aae130b2ac31b44f45892c342e28c) Signed-off-by: Julian Maurice --- C4/SIP/ILS.pm | 7 +++++++ t/SIPILS.t | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100755 t/SIPILS.t diff --git a/C4/SIP/ILS.pm b/C4/SIP/ILS.pm index d6117c0f6d..26cd41190f 100644 --- a/C4/SIP/ILS.pm +++ b/C4/SIP/ILS.pm @@ -180,6 +180,13 @@ sub _ci_cardnumber_cmp { return ( uc($s1) eq uc($s2) ); } +# wrapper which allows above to be called for testing + +sub test_cardnumber_compare { + my ($self, $str1, $str2) = @_; + return _ci_cardnumber_cmp($str1, $str2); +} + sub checkin { my ( $self, $item_id, $trans_date, $return_date, $current_loc, $item_props, $cancel, $checked_in_ok ) = @_; my ( $patron, $item, $circ ); diff --git a/t/SIPILS.t b/t/SIPILS.t new file mode 100755 index 0000000000..196c9b2e0e --- /dev/null +++ b/t/SIPILS.t @@ -0,0 +1,56 @@ +#!/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 => 9; + +BEGIN { + use_ok('C4::SIP::ILS'); +} + +my $class = 'C4::SIP::ILS'; +my $institution = { id => 'CPL', }; + +my $ils = $class->new($institution); + +isa_ok( $ils, $class ); + +# Check all methods required for interface are there +# NB the mon_block routines are not here but Sip.pm thinks it can call them +my @methods = ( + qw( find_patron find_item checkout_ok checkin_ok offline_ok status_update_ok + offline_ok checkout checkin end_patron_session pay_fee add_hold cancel_hold + alter_hold renew renew_all) +); + +can_ok( $ils, @methods ); + +is( $ils->institution(), 'CPL', 'institution method returns id' ); + +is( $ils->institution_id(), 'CPL', 'institution_id method returns id' ); + +is( $ils->supports('checkout'), 1, 'checkout supported' ); + +is( $ils->supports('security_inhibit'), + q{}, 'unsupported feature returns false' ); + +is( $ils->test_cardnumber_compare( 'A1234', 'a1234' ), + 1, 'borrower bc test is case insensitive' ); + +is( $ils->test_cardnumber_compare( 'A1234', 'b1234' ), + q{}, 'borrower bc test identifies difference' ); -- 2.39.5