Bugzilla – Attachment 88910 Details for
Bug 13937
Add an Elasticsearch-compatible Z39.50/SRU daemon
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13937: Add unit tests
Bug-13937-Add-unit-tests.patch (text/plain), 7.25 KB, created by
Stefan Berndtsson
on 2019-04-26 12:29:52 UTC
(
hide
)
Description:
Bug 13937: Add unit tests
Filename:
MIME Type:
Creator:
Stefan Berndtsson
Created:
2019-04-26 12:29:52 UTC
Size:
7.25 KB
patch
obsolete
>From 917643f53328eb6f8373cab3f211a3bb5a772b33 Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Thu, 7 Sep 2017 11:50:42 -0400 >Subject: [PATCH] Bug 13937: Add unit tests > >Signed-off-by: Stefan Berndtsson <stefan.berndtsson@ub.gu.se> >--- > t/Koha/Z3950responder.t | 31 +++++++ > t/db_dependent/Koha/Z3950Responder/Session.t | 70 +++++++++++++++ > t/db_dependent/Koha/Z3950Responder/Session2.t | 86 +++++++++++++++++++ > 3 files changed, 187 insertions(+) > create mode 100644 t/Koha/Z3950responder.t > create mode 100644 t/db_dependent/Koha/Z3950Responder/Session.t > create mode 100644 t/db_dependent/Koha/Z3950Responder/Session2.t > >diff --git a/t/Koha/Z3950responder.t b/t/Koha/Z3950responder.t >new file mode 100644 >index 0000000000..3d74e5df8f >--- /dev/null >+++ b/t/Koha/Z3950responder.t >@@ -0,0 +1,31 @@ >+#!/usr/bin/perl >+ >+use Modern::Perl; >+use Test::More tests => 8; >+ >+BEGIN { >+ use_ok('Koha::Z3950Responder'); >+} >+ >+my $zR = Koha::Z3950Responder->new({}); >+ >+my $args={ PEER_NAME => 'PEER'}; >+$zR->init_handler($args); >+is ( $args->{IMP_NAME}, 'Koha',"Server returns basic info"); >+$args->{DATABASES} = ['biblios']; >+$args->{QUERY} = 'biblios'; >+$args->{SETNAME} = 'biblios'; >+$args->{START} = 0; >+$args->{OFFSET} = 0; >+$args->{NUMBER} = 42; >+$zR->search_handler( $args ); >+is ( $args->{ERR_CODE}, 2, "We didn't start server , should fail"); >+is ( $args->{ERR_STR}, 'Cannot connect to upstream server', "We didn't start server, should fail because it cannot connect"); >+$zR->present_handler( $args ); >+is ( $args->{ERR_CODE}, 30, "There is no handler as we aren't connected"); >+is ( $args->{ERR_STR}, 'No such resultset', "We don't have a handler, should fail because we don't"); >+my $arg_check = ( $args ); >+$zR->fetch_handler( $args ); >+is_deeply( $args, $arg_check, "nothing should change"); >+$zR->close_handler( $args ); >+is_deeply( $args, $arg_check, "nothing should change"); >diff --git a/t/db_dependent/Koha/Z3950Responder/Session.t b/t/db_dependent/Koha/Z3950Responder/Session.t >new file mode 100644 >index 0000000000..59930810e9 >--- /dev/null >+++ b/t/db_dependent/Koha/Z3950Responder/Session.t >@@ -0,0 +1,70 @@ >+#!/usr/bin/perl >+ >+use Modern::Perl; >+use Test::More tests => 3; >+use t::lib::TestBuilder; >+use C4::Items; >+ >+BEGIN { >+ use_ok('Koha::Z3950Responder'); >+ use_ok('Koha::Z3950Responder::Session'); >+} >+ >+my $builder = t::lib::TestBuilder->new; >+my $schema = Koha::Database->new->schema; >+ >+$schema->storage->txn_begin; >+ >+subtest 'add_item_status' => sub { >+ >+ plan tests => 2; >+ >+ # Make sure we are using default values set in code >+ $builder->schema->resultset( 'AuthorisedValue' )->delete_all; >+ >+ ## FIRST ITEM HAS ALL THE STATUSES ## >+ my $item_1 = $builder->build({ >+ source => 'Item', >+ value => { >+ onloan => '2017-07-07', >+ itemlost => 1, >+ notforloan => 1, >+ damaged => 1, >+ withdrawn => 1, >+ } >+ }); >+ my $item_marc_1 = C4::Items::GetMarcItem( $item_1->{biblionumber}, $item_1->{itemnumber} ); >+ my $item_field_1 = scalar $item_marc_1->field('952'); >+ $builder->build({ source => 'Reserve', value=> { itemnumber => $item_1->{itemnumber} } }); >+ $builder->build({ source => 'Branchtransfer', value=> { itemnumber => $item_1->{itemnumber}, datearrived => undef } }); >+ ## END FIRST ITEM ## >+ >+ ## SECOND ITEM HAS NO STATUSES ## >+ my $item_2 = $builder->build({ >+ source => 'Item', >+ value => { >+ onloan => undef, >+ itemlost => 0, >+ notforloan => 0, >+ damaged => 0, >+ withdrawn => 0, >+ } >+ }); >+ my $item_marc_2 = C4::Items::GetMarcItem( $item_2->{biblionumber}, $item_2->{itemnumber} ); >+ my $item_field_2 = scalar $item_marc_2->field('952'); >+ ## END SECOND ITEM ## >+ >+ # Create the responder >+ my $args={ PEER_NAME => 'PEER'}; >+ my $zR = Koha::Z3950Responder->new({add_item_status_subfield => 'k'}); >+ $zR->init_handler($args); >+ >+ $args->{HANDLE}->add_item_status($item_field_1); >+ is($item_field_1->subfield('k'),"Checked Out, Lost, Not for Loan, Damaged, Withdrawn, In Transit, On Hold","All statuses added in one field as expected"); >+ >+ $args->{HANDLE}->add_item_status($item_field_2); >+ is($item_field_2->subfield('k'),'Available',"Available status added as expected"); >+ >+}; >+ >+$schema->storage->txn_rollback; >diff --git a/t/db_dependent/Koha/Z3950Responder/Session2.t b/t/db_dependent/Koha/Z3950Responder/Session2.t >new file mode 100644 >index 0000000000..073889b050 >--- /dev/null >+++ b/t/db_dependent/Koha/Z3950Responder/Session2.t >@@ -0,0 +1,86 @@ >+#!/usr/bin/perl >+ >+use Modern::Perl; >+use Test::More tests => 3; >+use t::lib::TestBuilder; >+use C4::Items; >+ >+BEGIN { >+ use_ok('Koha::Z3950Responder'); >+ use_ok('Koha::Z3950Responder::Session'); >+} >+ >+my $builder = t::lib::TestBuilder->new; >+my $schema = Koha::Database->new->schema; >+ >+$schema->storage->txn_begin; >+ >+subtest 'add_item_status' => sub { >+ >+ plan tests => 2; >+ >+ # This time we are sustituting some values >+ $builder->schema->resultset( 'AuthorisedValue' )->delete_all; >+ $builder->build({ >+ source => 'AuthorisedValue', >+ value => { >+ category => 'Z3950_STATUS', >+ authorised_value => 'AVAILABLE', >+ lib => "Free as a bird" >+ } >+ }); >+ $builder->build({ >+ source => 'AuthorisedValue', >+ value => { >+ category => 'Z3950_STATUS', >+ authorised_value => 'DAMAGED', >+ lib => "Borked completely" >+ } >+ }); >+ >+ ## FIRST ITEM HAS ALL THE STATUSES ## >+ my $item_1 = $builder->build({ >+ source => 'Item', >+ value => { >+ onloan => '2017-07-07', >+ itemlost => 1, >+ notforloan => 1, >+ damaged => 1, >+ withdrawn => 1, >+ } >+ }); >+ my $item_marc_1 = C4::Items::GetMarcItem( $item_1->{biblionumber}, $item_1->{itemnumber} ); >+ my $item_field_1 = scalar $item_marc_1->field('952'); >+ $builder->build({ source => 'Reserve', value=> { itemnumber => $item_1->{itemnumber} } }); >+ $builder->build({ source => 'Branchtransfer', value=> { itemnumber => $item_1->{itemnumber}, datearrived => undef } }); >+ ## END FIRST ITEM ## >+ >+ ## SECOND ITEM HAS NO STATUSES ## >+ my $item_2 = $builder->build({ >+ source => 'Item', >+ value => { >+ onloan => undef, >+ itemlost => 0, >+ notforloan => 0, >+ damaged => 0, >+ withdrawn => 0, >+ } >+ }); >+ my $item_marc_2 = C4::Items::GetMarcItem( $item_2->{biblionumber}, $item_2->{itemnumber} ); >+ my $item_field_2 = scalar $item_marc_2->field('952'); >+ ## END SECOND ITEM ## >+ >+ # Create the responder >+ my $args={ PEER_NAME => 'PEER'}; >+ my $zR = Koha::Z3950Responder->new({add_item_status_subfield => 'k'}); >+ $zR->init_handler($args); >+ >+ $args->{HANDLE}->add_item_status($item_field_1); >+ is($item_field_1->subfield('k'),"Checked Out, Lost, Not for Loan, Borked completely, Withdrawn, In Transit, On Hold","All statuses added in one field as expected"); >+ >+ $args->{HANDLE}->add_item_status($item_field_2); >+ is($item_field_2->subfield('k'),'Free as a bird',"Available status is 'Free as a bird' added as expected"); >+ >+}; >+ >+$schema->storage->txn_rollback; >-- >2.17.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13937
:
46369
|
47417
|
47418
|
47419
|
53503
|
58122
|
58125
|
58126
|
59443
|
59444
|
60735
|
60736
|
60737
|
60738
|
66943
|
66944
|
66945
|
66946
|
69139
|
82562
|
82563
|
82564
|
82565
|
82566
|
82567
|
82589
|
82590
|
82591
|
82592
|
82593
|
82594
|
82595
|
82660
|
82661
|
82662
|
82663
|
82664
|
82665
|
82666
|
82667
|
83780
|
83781
|
83782
|
83783
|
83784
|
83785
|
83786
|
83787
|
83788
|
83789
|
83951
|
83952
|
83953
|
83954
|
83955
|
83956
|
83957
|
83958
|
83959
|
84050
|
84051
|
84052
|
84053
|
84054
|
84055
|
84056
|
84057
|
84058
|
84059
|
84062
|
84063
|
84064
|
84065
|
84066
|
84067
|
84068
|
84069
|
84072
|
84073
|
85112
|
86353
|
86354
|
86355
|
86356
|
86357
|
86358
|
86359
|
86360
|
86361
|
86362
|
86363
|
86364
|
88907
|
88908
|
88909
|
88910
|
88911
|
88912
|
88913
|
88914
|
88915
|
88916
|
88917
|
88918
|
91728
|
91729
|
91730
|
91731
|
91732
|
91733
|
91734
|
91735
|
91736
|
91737
|
91738
|
91739
|
91740
|
93913
|
94097
|
94109
|
94110
|
94209
|
94616
|
94647