@@ -, +, @@ 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 --- C4/SIP/ILS.pm | 7 +++++++ t/SIPILS.t | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100755 t/SIPILS.t --- a/C4/SIP/ILS.pm +++ a/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 ); --- a/t/SIPILS.t +++ a/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' ); --