|
Lines 135-169
subtest 'waiting_or_in_transit' => sub {
Link Here
|
| 135 |
}; |
135 |
}; |
| 136 |
|
136 |
|
| 137 |
subtest 'can_be_transferred' => sub { |
137 |
subtest 'can_be_transferred' => sub { |
| 138 |
plan tests => 11; |
138 |
plan tests => 8; |
| 139 |
|
139 |
|
| 140 |
t::lib::Mocks::mock_preference('UseBranchTransferLimits', 1); |
140 |
t::lib::Mocks::mock_preference('UseBranchTransferLimits', 1); |
| 141 |
t::lib::Mocks::mock_preference('BranchTransferLimitsType', 'itemtype'); |
141 |
t::lib::Mocks::mock_preference('BranchTransferLimitsType', 'itemtype'); |
| 142 |
|
142 |
|
| 143 |
my $library1 = $builder->build( { source => 'Branch' } )->{branchcode}; |
143 |
my $library1 = $builder->build_object( { class => 'Koha::Libraries' } ); |
| 144 |
my $library2 = $builder->build( { source => 'Branch' } )->{branchcode}; |
144 |
my $library2 = $builder->build_object( { class => 'Koha::Libraries' } ); |
| 145 |
my $library3 = $builder->build( { source => 'Branch' } )->{branchcode}; |
145 |
my $library3 = $builder->build_object( { class => 'Koha::Libraries' } ); |
| 146 |
my ($bibnum, $title, $bibitemnum) = create_helper_biblio('ONLY1'); |
146 |
my ($bibnum, $title, $bibitemnum) = create_helper_biblio('ONLY1'); |
| 147 |
my ($item_bibnum, $item_bibitemnum, $itemnumber) |
147 |
my ($item_bibnum, $item_bibitemnum, $itemnumber) |
| 148 |
= AddItem({ homebranch => $library1, holdingbranch => $library1 }, $bibnum); |
148 |
= AddItem({ homebranch => $library1->branchcode, holdingbranch => $library1->branchcode }, $bibnum); |
| 149 |
my $item = Koha::Items->find($itemnumber); |
149 |
my $item = Koha::Items->find($itemnumber); |
| 150 |
my $biblio = Koha::Biblios->find($bibnum); |
150 |
my $biblio = Koha::Biblios->find($bibnum); |
| 151 |
|
151 |
|
| 152 |
is(Koha::Item::Transfer::Limits->search({ |
152 |
is(Koha::Item::Transfer::Limits->search({ |
| 153 |
fromBranch => $library1, |
153 |
fromBranch => $library1->branchcode, |
| 154 |
toBranch => $library2, |
154 |
toBranch => $library2->branchcode, |
| 155 |
})->count, 0, 'There are no transfer limits between libraries.'); |
155 |
})->count, 0, 'There are no transfer limits between libraries.'); |
| 156 |
ok($biblio->can_be_transferred({ to => $library2 }), |
156 |
ok($biblio->can_be_transferred({ to => $library2 }), |
| 157 |
'Some items of this biblio can be transferred between libraries.'); |
157 |
'Some items of this biblio can be transferred between libraries.'); |
| 158 |
|
158 |
|
| 159 |
my $limit = Koha::Item::Transfer::Limit->new({ |
159 |
my $limit = Koha::Item::Transfer::Limit->new({ |
| 160 |
fromBranch => $library1, |
160 |
fromBranch => $library1->branchcode, |
| 161 |
toBranch => $library2, |
161 |
toBranch => $library2->branchcode, |
| 162 |
itemtype => $item->effective_itemtype, |
162 |
itemtype => $item->effective_itemtype, |
| 163 |
})->store; |
163 |
})->store; |
| 164 |
is(Koha::Item::Transfer::Limits->search({ |
164 |
is(Koha::Item::Transfer::Limits->search({ |
| 165 |
fromBranch => $library1, |
165 |
fromBranch => $library1->branchcode, |
| 166 |
toBranch => $library2, |
166 |
toBranch => $library2->branchcode, |
| 167 |
})->count, 1, 'Given we have added a transfer limit that applies for all ' |
167 |
})->count, 1, 'Given we have added a transfer limit that applies for all ' |
| 168 |
.'of this biblio\s items,'); |
168 |
.'of this biblio\s items,'); |
| 169 |
is($biblio->can_be_transferred({ to => $library2 }), 0, |
169 |
is($biblio->can_be_transferred({ to => $library2 }), 0, |
|
Lines 171-199
subtest 'can_be_transferred' => sub {
Link Here
|
| 171 |
.'libraries.'); |
171 |
.'libraries.'); |
| 172 |
is($biblio->can_be_transferred({ to => $library2, from => $library1 }), 0, |
172 |
is($biblio->can_be_transferred({ to => $library2, from => $library1 }), 0, |
| 173 |
'We get the same result also if we pass the from-library parameter.'); |
173 |
'We get the same result also if we pass the from-library parameter.'); |
| 174 |
$item->holdingbranch($library2)->store; |
174 |
$item->holdingbranch($library2->branchcode)->store; |
| 175 |
is($biblio->can_be_transferred({ to => $library2 }), 1, 'Given one of the ' |
175 |
is($biblio->can_be_transferred({ to => $library2 }), 1, 'Given one of the ' |
| 176 |
.'items is already located at to-library, then the transfer is possible.'); |
176 |
.'items is already located at to-library, then the transfer is possible.'); |
| 177 |
$item->holdingbranch($library1)->store; |
177 |
$item->holdingbranch($library1->branchcode)->store; |
| 178 |
my ($item_bibnum2, $item_bibitemnum2, $itemnumber2) |
178 |
my ($item_bibnum2, $item_bibitemnum2, $itemnumber2) |
| 179 |
= AddItem({ homebranch => $library1, holdingbranch => $library3 }, $bibnum); |
179 |
= AddItem({ homebranch => $library1->branchcode, holdingbranch => $library3->branchcode }, $bibnum); |
| 180 |
my $item2 = Koha::Items->find($itemnumber2); |
180 |
my $item2 = Koha::Items->find($itemnumber2); |
| 181 |
is($biblio->can_be_transferred({ to => $library2 }), 1, 'Given we added ' |
181 |
is($biblio->can_be_transferred({ to => $library2 }), 1, 'Given we added ' |
| 182 |
.'another item that should have no transfer limits applying on, then ' |
182 |
.'another item that should have no transfer limits applying on, then ' |
| 183 |
.'the transfer is possible.'); |
183 |
.'the transfer is possible.'); |
| 184 |
$item2->holdingbranch($library1)->store; |
184 |
$item2->holdingbranch($library1->branchcode)->store; |
| 185 |
is($biblio->can_be_transferred({ to => $library2 }), 0, 'Given all of items' |
185 |
is($biblio->can_be_transferred({ to => $library2 }), 0, 'Given all of items' |
| 186 |
.' of the biblio are from same, transfer limited library, then transfer' |
186 |
.' of the biblio are from same, transfer limited library, then transfer' |
| 187 |
.' is not possible.'); |
187 |
.' is not possible.'); |
| 188 |
throws_ok { $biblio->can_be_transferred({ to => undef }); } |
|
|
| 189 |
'Koha::Exceptions::Library::NotFound', |
| 190 |
'Exception thrown when no library given.'; |
| 191 |
throws_ok { $biblio->can_be_transferred({ to => 'heaven' }); } |
| 192 |
'Koha::Exceptions::Library::NotFound', |
| 193 |
'Exception thrown when invalid library is given.'; |
| 194 |
throws_ok { $biblio->can_be_transferred({ to => $library2, from => 'hell' }); } |
| 195 |
'Koha::Exceptions::Library::NotFound', |
| 196 |
'Exception thrown when invalid library is given.'; |
| 197 |
}; |
188 |
}; |
| 198 |
|
189 |
|
| 199 |
$schema->storage->txn_rollback; |
190 |
$schema->storage->txn_rollback; |