Koha/C4/SIP/t/08checkin.t
Adrien Saurat 6f5eef782c Bug 9845: correct SIP 08checkin.t
The tests were too restrictive. It should be possible to pass
a checkin/checkout test with different values defined for
magnetic media.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
2013-09-08 06:03:11 +00:00

84 lines
2.2 KiB
Perl

#!/usr/bin/perl
# checkin: test Checkin Response
use strict;
use warnings;
use Clone qw(clone);
use Sip::Constants qw(:all);
use SIPtest qw(:basic :user1 :item1);
# Checkout response, format:
# code: 12
# success: 0 or 1
# renewal ok: Y or N
# magnetic media: Y, N or U
# desensitize: Y or N
# date
# Checkin response, format:
# code: 10
# success: 0 or 1
# resensitize: Y or N
# magnetic media: Y, N or U
# alert: Y or N
# date
my $checkout_template = {
id => "Checkin: prep: check out item ($item_barcode)",
msg => "11YN20060329 203000 AO$instid|AA$user_barcode|AB$item_barcode|AC|",
pat => qr/^121N[NYU][NY]$datepat/,
fields => [],
};
my $checkin_test_template = {
id => "Checkin: Item ($item_barcode) is checked out",
msg => "09N20060102 08423620060113 084235AP$item_owner|AO$instid|AB$item_barcode|AC$password|",
pat => qr/^101[NY][NYU]N$datepat/,
fields => [
$SIPtest::field_specs{(FID_INST_ID )},
$SIPtest::field_specs{(FID_SCREEN_MSG)},
$SIPtest::field_specs{(FID_PRINT_LINE)},
{ field => FID_PATRON_ID,
pat => qr/^$user_barcode$/,
required => 1, },
{ field => FID_ITEM_ID,
pat => qr/^$item_barcode$/,
required => 1, },
{ field => FID_PERM_LOCN,
pat => $textpat,
required => 1, },
{ field => FID_TITLE_ID,
pat => qr/^$item_title\s*$/,
required => 1, }, # not required by the spec.
{ field => FID_DESTINATION_LOCATION,
pat => qr/^$item_owner\s*$/,
required => 0, }, # 3M Extension
],};
my @tests = (
$SIPtest::login_test,
$SIPtest::sc_status_test,
$checkout_template,
$checkin_test_template,
);
my $test;
# Checkin item that's not checked out. Basically, this
# is identical to the first case, except the header says that
# the ILS didn't check the item in, and there's no patron id.
$test = clone($checkin_test_template);
$test->{id} = 'Checkin: Item not checked out';
$test->{pat} = qr/^100[NY][NYU][NY]$datepat/o;
$test->{fields} = [grep $_->{field} ne FID_PATRON_ID, @{$test->{fields}}];
push @tests, $test;
#
# Still need tests for magnetic media
#
SIPtest::run_sip_tests(@tests);
1;