From: Jason Etheridge Date: Thu, 24 Nov 2022 15:08:24 +0000 (-0500) Subject: first set of explicit extension testing X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=7a5bab77c1f0a9a4ba6208fe65c3a443eaf0351c;p=working%2FSIPServer.git first set of explicit extension testing --- diff --git a/t/17extensions.t b/t/17extensions.t new file mode 100755 index 0000000..f8ba156 --- /dev/null +++ b/t/17extensions.t @@ -0,0 +1,101 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Clone qw(clone); + +use Sip::Constants qw(:all); + +use SIPtest qw($datepat $textpat $instid $currency $user_barcode $user_pin + $user_fullname $user_homeaddr $user_email $user_phone + $user_birthday $user_ptype $user_inet $user_homelib); + +my $patron_info_test_template = { + id => 'valid Patron Info no details', + msg => "6300020060329 201700 AO$instid|AA$user_barcode|", + pat => qr/^64 [ Y]{13}\d{3}$datepat(\d{4}){6}/, + 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$/o, + required => 1, }, + { field => FID_PERSONAL_NAME, + pat => qr/^$user_fullname$/o, + required => 1, }, + $SIPtest::field_specs{(FID_HOLD_ITEMS_LMT) }, + $SIPtest::field_specs{(FID_OVERDUE_ITEMS_LMT)}, + $SIPtest::field_specs{(FID_CHARGED_ITEMS_LMT)}, + { field => FID_VALID_PATRON, + pat => qr/^Y$/, + # Not required by the spec, but by the test + required => 1, }, + $SIPtest::field_specs{(FID_CURRENCY)}, + { field => FID_FEE_AMT, + pat => $textpat, + required => 0, }, + { field => FID_FEE_LMT, + pat => $textpat, + required => 0, }, + # field => FID_HOME_ADDR, + # pat => qr/^$user_homeaddr$/o, + # required => 1, }, # required by this test case + { field => FID_EMAIL, + pat => qr/^$user_email$/o, + required => 1, }, + { field => FID_HOME_PHONE, + pat => qr/^$user_phone$/o, + required => 1, }, + { field => FID_PATRON_BIRTHDATE, + pat => qr/^$user_birthday$/o, + required => 1, }, + { field => FID_PATRON_CLASS, + pat => qr/^$user_ptype$/o, + required => 1, }, + #{ field => FID_INET_PROFILE, + # pat => qr/^$user_inet$/, + # required => 1, }, + # field => FID_HOME_LIBRARY, + # pat => qr/^$user_homelib$/, + # required => 1, }, # Required for this test +], }; + +my @tests = ( + $SIPtest::login_test, + $SIPtest::sc_status_test, + clone($patron_info_test_template), +); + + +sub create_patron_info_extension_tests { + my $test = clone($patron_info_test_template); + + $test->{id} = "Patron Info home address extension"; + push @{$test->{fields}}, { + field => FID_HOME_ADDR, + pat => qr/^$user_homeaddr$/o, + required => 1, }; + push @tests, $test; + + $test = clone($patron_info_test_template); + $test->{id} = "Patron Info internet profile extension"; + push @{$test->{fields}}, { + field => FID_INET_PROFILE, + pat => qr/^$user_inet$/, + required => 1, }; + push @tests, $test; + + $test = clone($patron_info_test_template); + $test->{id} = "Patron Info home library extension"; + push @{$test->{fields}}, { + field => FID_HOME_LIBRARY, + pat => qr/^$user_homelib$/, + required => 1, }; + push @tests, $test; +} + +create_patron_info_extension_tests(); + +SIPtest::run_sip_tests(@tests); + +1;