--- /dev/null
+#!/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;