Bug 24022: Remove unecessary delete from authorised_values
[koha.git] / t / db_dependent / Koha / Z3950Responder / Session.t
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4 use Test::More tests => 3;
5 use t::lib::TestBuilder;
6 use C4::Items;
7
8 BEGIN {
9     use_ok('Koha::Z3950Responder');
10     use_ok('Koha::Z3950Responder::Session');
11 }
12
13 my $builder = t::lib::TestBuilder->new;
14 my $schema  = Koha::Database->new->schema;
15
16 $schema->storage->txn_begin;
17
18 subtest 'add_item_status' => sub {
19
20     plan tests => 2;
21
22     ## FIRST ITEM HAS ALL THE STATUSES ##
23     my $item_1 = $builder->build({
24         source => 'Item',
25         value => {
26             onloan => '2017-07-07',
27             itemlost => 1,
28             notforloan => 1,
29             damaged => 1,
30             withdrawn => 1,
31         }
32     });
33     my $item_marc_1 = C4::Items::GetMarcItem( $item_1->{biblionumber}, $item_1->{itemnumber} );
34     my $item_field_1 = scalar $item_marc_1->field('952');
35     $builder->build({ source => 'Reserve', value=> { itemnumber => $item_1->{itemnumber} } });
36     $builder->build({ source => 'Branchtransfer', value=> { itemnumber => $item_1->{itemnumber}, datearrived => undef } });
37     ## END FIRST ITEM ##
38
39     ## SECOND ITEM HAS NO STATUSES ##
40     my $item_2 = $builder->build({
41         source => 'Item',
42         value => {
43             onloan => undef,
44             itemlost => 0,
45             notforloan => 0,
46             damaged => 0,
47             withdrawn => 0,
48         }
49     });
50     my $item_marc_2 = C4::Items::GetMarcItem( $item_2->{biblionumber}, $item_2->{itemnumber} );
51     my $item_field_2 = scalar $item_marc_2->field('952');
52     ## END SECOND ITEM ##
53
54     # Create the responder
55     my $args={ PEER_NAME => 'PEER'};
56     my $zR = Koha::Z3950Responder->new({add_item_status_subfield => 'k'});
57     $zR->init_handler($args);
58
59     $args->{HANDLE}->add_item_status($item_field_1);
60     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");
61
62     $args->{HANDLE}->add_item_status($item_field_2);
63     is($item_field_2->subfield('k'),'Available',"Available status added as expected");
64
65 };
66
67 $schema->storage->txn_rollback;