Line 0
Link Here
|
0 |
- |
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 |
# This time we are sustituting some values |
23 |
$builder->schema->resultset( 'AuthorisedValue' )->delete_all; |
24 |
$builder->build({ |
25 |
source => 'AuthorisedValue', |
26 |
value => { |
27 |
category => 'Z3950_STATUS', |
28 |
authorised_value => 'AVAILABLE', |
29 |
lib => "Free as a bird" |
30 |
} |
31 |
}); |
32 |
$builder->build({ |
33 |
source => 'AuthorisedValue', |
34 |
value => { |
35 |
category => 'Z3950_STATUS', |
36 |
authorised_value => 'DAMAGED', |
37 |
lib => "Borked completely" |
38 |
} |
39 |
}); |
40 |
|
41 |
## FIRST ITEM HAS ALL THE STATUSES ## |
42 |
my $item_1 = $builder->build({ |
43 |
source => 'Item', |
44 |
value => { |
45 |
onloan => '2017-07-07', |
46 |
itemlost => 1, |
47 |
notforloan => 1, |
48 |
damaged => 1, |
49 |
withdrawn => 1, |
50 |
} |
51 |
}); |
52 |
my $item_marc_1 = C4::Items::GetMarcItem( $item_1->{biblionumber}, $item_1->{itemnumber} ); |
53 |
my $item_field_1 = scalar $item_marc_1->field('952'); |
54 |
$builder->build({ source => 'Reserve', value=> { itemnumber => $item_1->{itemnumber} } }); |
55 |
$builder->build({ source => 'Branchtransfer', value=> { itemnumber => $item_1->{itemnumber}, datearrived => undef } }); |
56 |
## END FIRST ITEM ## |
57 |
|
58 |
## SECOND ITEM HAS NO STATUSES ## |
59 |
my $item_2 = $builder->build({ |
60 |
source => 'Item', |
61 |
value => { |
62 |
onloan => undef, |
63 |
itemlost => 0, |
64 |
notforloan => 0, |
65 |
damaged => 0, |
66 |
withdrawn => 0, |
67 |
} |
68 |
}); |
69 |
my $item_marc_2 = C4::Items::GetMarcItem( $item_2->{biblionumber}, $item_2->{itemnumber} ); |
70 |
my $item_field_2 = scalar $item_marc_2->field('952'); |
71 |
## END SECOND ITEM ## |
72 |
|
73 |
# Create the responder |
74 |
my $args={ PEER_NAME => 'PEER'}; |
75 |
my $zR = Koha::Z3950Responder->new({add_item_status_subfield => 'k'}); |
76 |
$zR->init_handler($args); |
77 |
|
78 |
$args->{HANDLE}->add_item_status($item_field_1); |
79 |
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"); |
80 |
|
81 |
$args->{HANDLE}->add_item_status($item_field_2); |
82 |
is($item_field_2->subfield('k'),'Free as a bird',"Available status is 'Free as a bird' added as expected"); |
83 |
|
84 |
}; |
85 |
|
86 |
$schema->storage->txn_rollback; |