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>
132 lines
4.5 KiB
Perl
Executable file
132 lines
4.5 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
# renew_all: test Renew All 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 :item2);
|
|
|
|
my $enable_template = {
|
|
id => 'Renew All: prep: enable patron permissions',
|
|
msg => "2520060102 084238AO$instid|AA$user_barcode|",
|
|
pat => qr/^26 {4}[ Y]{10}000$datepat/,
|
|
fields => [],
|
|
};
|
|
|
|
# reset_checkin_templates will be used to reset the status of the items if needed
|
|
# If "make test" is used (all tests at once), after the tests 08 and 09, the item stays checked out and this raises an error here
|
|
# so we begin with a Checkin, awaiting for the minimal answer : ^10 (Checkin response)
|
|
# Both results (101 and 100, for OK and NON OK) must be accepted, because if we run this test alone, the item won't necessarily be checked out
|
|
# and the checkin attempt will then result in a "100" code, which is not a problem (we are just preparing the renewal tests)
|
|
my @reset_checkin_templates = (
|
|
{
|
|
id => "Renew All: prep: check in $item_barcode (used in previous tests)",
|
|
msg => "09N20060102 08423620060113 084235AP$item_owner|AO$instid|AB$item_barcode|AC$password|",
|
|
pat => qr/^10/,
|
|
fields => [],
|
|
},
|
|
{
|
|
id => "Renew All: prep: check in $item2_barcode (used in previous tests)",
|
|
msg => "09N20060102 08423620060113 084235AP$item2_owner|AO$instid|AB$item2_barcode|AC$password|",
|
|
pat => qr/^10/,
|
|
fields => [],
|
|
}
|
|
);
|
|
|
|
# Checkout as a preparation for renewal
|
|
my @checkout_templates = (
|
|
{ id => "Renew All: prep: check out $item_barcode to $user_barcode",
|
|
msg => "11YN20060329 203000 AO$instid|AA$user_barcode|AB$item_barcode|AC$password|",
|
|
pat => qr/^121NNY$datepat/,
|
|
fields => [],},
|
|
{ id => "Renew All: prep: check out $item2_barcode to $user_barcode",
|
|
msg => "11YN20060329 203000 AO$instid|AA$user_barcode|AB$item2_barcode|AC$password|",
|
|
pat => qr/^121NNY$datepat/,
|
|
fields => [],}
|
|
);
|
|
|
|
my $renew_all_test_template = {
|
|
id => "Renew All: patron ($user_barcode) with 1 item ($item_barcode) checked out, no patron password",
|
|
msg => "6520060102 084236AO$instid|AA$user_barcode|",
|
|
pat => qr/^66100010000$datepat/,
|
|
fields => [
|
|
$SIPtest::field_specs{(FID_INST_ID)},
|
|
$SIPtest::field_specs{(FID_SCREEN_MSG)},
|
|
$SIPtest::field_specs{(FID_PRINT_LINE)},
|
|
{ field => FID_RENEWED_ITEMS,
|
|
pat => qr/^$item_barcode$/,
|
|
required => 1, },
|
|
]
|
|
};
|
|
|
|
# check the book in, when done testing
|
|
my @checkin_templates = (
|
|
{
|
|
id => "Renew All: prep: check in $item_barcode",
|
|
msg => "09N20060102 08423620060113 084235AP$item_owner|AO$instid|AB$item_barcode|AC$password|",
|
|
pat => qr/^101YNN$datepat/,
|
|
fields => [],
|
|
},
|
|
{
|
|
id => "Renew All: prep: check in $item2_barcode",
|
|
msg => "09N20060102 08423620060113 084235AP$item2_owner|AO$instid|AB$item2_barcode|AC$password|",
|
|
pat => qr/^101YNN$datepat/,
|
|
fields => [],
|
|
}
|
|
);
|
|
|
|
|
|
|
|
my @tests = (
|
|
$SIPtest::login_test,
|
|
$SIPtest::sc_status_test,
|
|
);
|
|
|
|
my $test;
|
|
|
|
# WIP?
|
|
$test = clone($renew_all_test_template);
|
|
$test->{id} = 'Renew All: Valid patron, two items checked out';
|
|
$test->{pat} = qr/^66100020000$datepat/;
|
|
foreach my $i (0 .. (scalar @{$test->{fields}})-1) {
|
|
my $field = $test->{fields}[$i];
|
|
if ($field->{field} eq FID_RENEWED_ITEMS) {
|
|
$field->{pat} = qr/^$item_barcode\|$item2_barcode$/;
|
|
}
|
|
}
|
|
|
|
#push @tests, @checkout_templates[0..1], $renew_all_test_template, @checkin_templates[0..1];
|
|
|
|
$test = clone($renew_all_test_template);
|
|
$test->{id} = 'Renew All: valid patron, invalid patron password';
|
|
$test->{msg} .= (FID_PATRON_PWD) . 'bad_pwd|';
|
|
$test->{pat} = qr/^66000000000$datepat/;
|
|
delete $test->{fields};
|
|
$test->{fields} = [
|
|
$SIPtest::field_specs{(FID_INST_ID)},
|
|
$SIPtest::field_specs{(FID_SCREEN_MSG)},
|
|
$SIPtest::field_specs{(FID_PRINT_LINE)},
|
|
];
|
|
|
|
push @tests, $reset_checkin_templates[0], $checkout_templates[0], $test, $checkin_templates[0];
|
|
|
|
$test = clone($renew_all_test_template);
|
|
$test->{id} = 'Renew All: invalid patron';
|
|
$test->{msg} =~ s/AA$user_barcode/AAbad_barcode/;
|
|
$test->{pat} = qr/^66000000000$datepat/;
|
|
delete $test->{fields};
|
|
$test->{fields} = [
|
|
$SIPtest::field_specs{(FID_INST_ID)},
|
|
$SIPtest::field_specs{(FID_SCREEN_MSG)},
|
|
$SIPtest::field_specs{(FID_PRINT_LINE)},
|
|
];
|
|
push @tests, $test;
|
|
|
|
SIPtest::run_sip_tests(@tests);
|
|
|
|
1;
|