Jonathan Druart
f1f9c6dc74
.pm must not have -x .t must have -x .pl must have -x Test plan: Apply only the first patch, run the tests and confirm that the failures make sense Apply this patch and confirm that the test now returns green Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
86 lines
2.3 KiB
Perl
Executable file
86 lines
2.3 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
# checkin: test Checkin Response
|
|
|
|
use strict;
|
|
use warnings;
|
|
use FindBin qw($Bin);
|
|
use lib "$Bin";
|
|
use Clone qw(clone);
|
|
|
|
use C4::SIP::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;
|