From 9c9822cb351b08b3e8aa47d567b45ce321f67e68 Mon Sep 17 00:00:00 2001 From: djfiander Date: Sat, 27 May 2006 13:32:45 +0000 Subject: [PATCH] Add more tests --- t/06patron_enable.t | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 105 insertions(+), 1 deletion(-) diff --git a/t/06patron_enable.t b/t/06patron_enable.t index 3f7de35..56486c0 100644 --- a/t/06patron_enable.t +++ b/t/06patron_enable.t @@ -12,7 +12,7 @@ use SIPtest qw($datepat $textpat); my $patron_enable_test_template = { id => 'Patron Enable: valid patron', msg => "2520060102 084238AOUWOLS|AAdjfiander|", - pat => qr/^26 [ Y]{13}000$datepat/, + pat => qr/^26 {4}[ Y]{10}000$datepat/, fields => [ $SIPtest::field_specs{(FID_INST_ID)}, $SIPtest::field_specs{(FID_SCREEN_MSG)}, @@ -29,12 +29,116 @@ my $patron_enable_test_template = { required => 1, }, ], }; +# We need to disable the valid patron before we can +# ensure that he was properly enabled. +my $patron_disable_test_template = { + id => 'Patron Enable: block patron (prep to test enabling)', + msg => "01N20060102 084238AOUWOLS|ALHe's a jerk|AAdjfiander|", + # response to block patron is a patron status message + pat => qr/^24Y{4}[ Y]{10}000$datepat/, + fields => [ + $SIPtest::field_specs{(FID_INST_ID)}, + { field => FID_PATRON_ID, + pat => qr/^djfiander$/, + required => 1, }, + { field => FID_PERSONAL_NAME, + pat => qr/^David J\. Fiander$/, + required => 1, }, + { field => FID_VALID_PATRON, + pat => qr/^Y$/, + # Not required by the spec, but by the test + required => 1, }, + ], }; + my @tests = ( $SIPtest::login_test, $SIPtest::sc_status_test, + $patron_disable_test_template, clone($patron_enable_test_template), ); +my $test; + +# Valid patron, valid password +$test = clone($patron_enable_test_template); +$test->{id} = "Patron Enable: valid patron, valid password"; +$test->{msg} .= FID_PATRON_PWD . '6789|'; +$test->{pat} = qr/^26 {4}[ Y]{10}000$datepat/; +delete $test->{fields}; +$test->{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/^djfiander$/, + required => 1, }, + { field => FID_PERSONAL_NAME, + pat => qr/^David J\. Fiander$/, + required => 1, }, + { field => FID_VALID_PATRON, + pat => qr/^Y$/, + # Not required by the spec, but by the test + required => 1, }, + { field => FID_VALID_PATRON_PWD, + pat => qr/^Y$/, + required => 1, }, + ]; + +push @tests, $patron_disable_test_template, $test; + +# Valid patron, invalid password +$test = clone($patron_enable_test_template); +$test->{id} = "Patron Enable: valid patron, invalid password"; +$test->{msg} .= FID_PATRON_PWD . 'bad password|'; +$test->{pat} = qr/^26[ Y]{14}000$datepat/; +delete $test->{fields}; +$test->{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/^djfiander$/, + required => 1, }, + { field => FID_PERSONAL_NAME, + pat => qr/^David J\. Fiander$/, + required => 1, }, + { field => FID_VALID_PATRON, + pat => qr/^Y$/, + # Not required by the spec, but by the test + required => 1, }, + { field => FID_VALID_PATRON_PWD, + pat => qr/^N$/, + required => 1, }, + ]; + +push @tests, $patron_disable_test_template, $test; +# After this test, the patron is left disabled, so re-enable +push @tests, $patron_enable_test_template; + +# Invalid patron +$test = clone($patron_enable_test_template); +$test->{id} =~ s/valid/invalid/; +$test->{msg} =~ s/AAdjfiander\|/AAberick|/; +$test->{pat} = qr/^26Y{4}[ Y]{10}000$datepat/; +delete $test->{fields}; +$test->{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/^berick$/, + required => 1, }, + { field => FID_PERSONAL_NAME, + pat => qr/^$/, + required => 1, }, + { field => FID_VALID_PATRON, + pat => qr/^N$/, + # Not required by the spec, but by the test + required => 1, }, + ]; + +push @tests, $test; + SIPtest::run_sip_tests(@tests); 1; -- 2.11.0