4 use Test::More tests => 3;
5 use t::lib::TestBuilder;
9 use_ok('Koha::Z3950Responder');
10 use_ok('Koha::Z3950Responder::Session');
13 my $builder = t::lib::TestBuilder->new;
14 my $schema = Koha::Database->new->schema;
16 $schema->storage->txn_begin;
18 subtest 'add_item_status' => sub {
22 ## FIRST ITEM HAS ALL THE STATUSES ##
23 my $item_1 = $builder->build_sample_item(
25 onloan => '2017-07-07',
32 my ( $itemtag, $itemsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber" );
33 my $item_marc_1 = C4::Items::GetMarcItem( $item_1->biblionumber, $item_1->itemnumber );
34 my $item_field_1 = scalar $item_marc_1->field($itemtag);
35 $builder->build({ source => 'Reserve', value=> { itemnumber => $item_1->itemnumber } });
36 $builder->build({ source => 'Branchtransfer', value=> { itemnumber => $item_1->itemnumber, datearrived => undef } });
39 ## SECOND ITEM HAS NO STATUSES ##
40 my $item_2 = $builder->build_sample_item;
41 my $item_marc_2 = C4::Items::GetMarcItem( $item_2->biblionumber, $item_2->itemnumber );
42 my $item_field_2 = scalar $item_marc_2->field($itemtag);
45 # Create the responder
46 my $args={ PEER_NAME => 'PEER'};
47 my $zR = Koha::Z3950Responder->new({add_item_status_subfield => 'k'});
48 $zR->init_handler($args);
50 $args->{HANDLE}->add_item_status($item_field_1);
51 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");
53 $args->{HANDLE}->add_item_status($item_field_2);
54 is($item_field_2->subfield('k'),'Available',"Available status added as expected");
56 is($item_field_2->subfield( $itemsubfield ), $item_2->itemnumber, "Itemnumber not removed when status added");
60 $schema->storage->txn_rollback;