Lines 20-26
Link Here
|
20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
21 |
|
21 |
|
22 |
use Test::NoWarnings; |
22 |
use Test::NoWarnings; |
23 |
use Test::More tests => 15; |
23 |
use Test::More tests => 16; |
24 |
|
24 |
|
25 |
use Test::Exception; |
25 |
use Test::Exception; |
26 |
use Test::MockModule; |
26 |
use Test::MockModule; |
Lines 1161-1163
subtest 'change_type() tests' => sub {
Link Here
|
1161 |
|
1161 |
|
1162 |
$schema->storage->txn_rollback; |
1162 |
$schema->storage->txn_rollback; |
1163 |
}; |
1163 |
}; |
1164 |
- |
1164 |
|
|
|
1165 |
subtest 'move_hold() tests' => sub { |
1166 |
plan tests => 11; |
1167 |
$schema->storage->txn_begin; |
1168 |
|
1169 |
my $patron = Koha::Patron->new( |
1170 |
{ |
1171 |
surname => 'Luke', |
1172 |
categorycode => 'PT', |
1173 |
branchcode => 'CPL' |
1174 |
} |
1175 |
)->store; |
1176 |
|
1177 |
my $patron_2 = Koha::Patron->new( |
1178 |
{ |
1179 |
surname => 'Gass', |
1180 |
categorycode => 'PT', |
1181 |
branchcode => 'CPL' |
1182 |
} |
1183 |
)->store; |
1184 |
|
1185 |
my $patron_3 = Koha::Patron->new( |
1186 |
{ |
1187 |
surname => 'Test', |
1188 |
categorycode => 'PT', |
1189 |
branchcode => 'CPL' |
1190 |
} |
1191 |
)->store; |
1192 |
|
1193 |
my $patron_4 = Koha::Patron->new( |
1194 |
{ |
1195 |
surname => 'Guy', |
1196 |
categorycode => 'PT', |
1197 |
branchcode => 'CPL' |
1198 |
} |
1199 |
)->store; |
1200 |
|
1201 |
my $biblio1 = $builder->build_sample_biblio(); |
1202 |
my $item_1 = $builder->build_sample_item( { biblionumber => $biblio1->biblionumber } ); |
1203 |
|
1204 |
my $biblio2 = $builder->build_sample_biblio(); |
1205 |
my $item_2 = $builder->build_sample_item( { biblionumber => $biblio2->biblionumber } ); |
1206 |
|
1207 |
my $biblio3 = $builder->build_sample_biblio(); |
1208 |
my $item_3 = $builder->build_sample_item( { biblionumber => $biblio3->biblionumber } ); |
1209 |
|
1210 |
my $biblio4 = $builder->build_sample_biblio(); |
1211 |
my $item_4 = $builder->build_sample_item( { biblionumber => $biblio4->biblionumber } ); |
1212 |
|
1213 |
# Create an item level hold |
1214 |
my $hold = Koha::Hold->new( |
1215 |
{ |
1216 |
borrowernumber => $patron->borrowernumber, |
1217 |
biblionumber => $biblio1->biblionumber, |
1218 |
itemnumber => $item_1->itemnumber, |
1219 |
branchcode => 'CPL', |
1220 |
} |
1221 |
)->store; |
1222 |
|
1223 |
# Create a record level hold |
1224 |
my $hold_2 = Koha::Hold->new( |
1225 |
{ |
1226 |
borrowernumber => $patron->borrowernumber, |
1227 |
biblionumber => $biblio1->biblionumber, |
1228 |
itemnumber => undef, |
1229 |
branchcode => 'CPL', |
1230 |
} |
1231 |
)->store; |
1232 |
|
1233 |
# Move the hold from item 1 to item 2 |
1234 |
my $result = $hold->move_hold( { new_itemnumber => $item_2->itemnumber } ); |
1235 |
ok( $result->{success}, 'Hold successfully moved' ); |
1236 |
$hold->discard_changes(); |
1237 |
is( $hold->biblionumber, $biblio2->biblionumber, 'Biblionumber updated correctly' ); |
1238 |
is( $hold->itemnumber, $item_2->itemnumber, 'Itemnumber updated correctly' ); |
1239 |
is( $hold->priority, 1, "Hold priority is set to 1" ); |
1240 |
|
1241 |
my $logs = Koha::ActionLogs->search( |
1242 |
{ |
1243 |
action => 'MODIFY', |
1244 |
module => 'HOLDS', |
1245 |
object => $hold->id |
1246 |
} |
1247 |
); |
1248 |
|
1249 |
is( $logs->count, 0, 'HoldsLog disabled, no logs added' ); |
1250 |
|
1251 |
my $result_2 = $hold_2->move_hold( { new_biblionumber => $biblio3->biblionumber } ); |
1252 |
ok( $result_2->{success}, 'Hold successfully moved' ); |
1253 |
$hold_2->discard_changes(); |
1254 |
is( $hold_2->biblionumber, $biblio3->biblionumber, 'Biblionumber updated correctly' ); |
1255 |
is( $hold->priority, 1, "Hold priority is set to 1" ); |
1256 |
|
1257 |
# Create an item level hold |
1258 |
my $hold_3 = Koha::Hold->new( |
1259 |
{ |
1260 |
borrowernumber => $patron_3->borrowernumber, |
1261 |
biblionumber => $biblio4->biblionumber, |
1262 |
itemnumber => $item_4->itemnumber, |
1263 |
branchcode => 'CPL', |
1264 |
priority => 1, |
1265 |
} |
1266 |
)->store; |
1267 |
|
1268 |
# Create an item level hold |
1269 |
my $hold_4 = Koha::Hold->new( |
1270 |
{ |
1271 |
borrowernumber => $patron_2->borrowernumber, |
1272 |
biblionumber => $biblio4->biblionumber, |
1273 |
itemnumber => $item_4->itemnumber, |
1274 |
branchcode => 'CPL', |
1275 |
priority => 2, |
1276 |
} |
1277 |
)->store; |
1278 |
|
1279 |
# Create an item level hold |
1280 |
my $hold_5 = Koha::Hold->new( |
1281 |
{ |
1282 |
borrowernumber => $patron_4->borrowernumber, |
1283 |
biblionumber => $biblio4->biblionumber, |
1284 |
itemnumber => $item_4->itemnumber, |
1285 |
branchcode => 'CPL', |
1286 |
priority => 3, |
1287 |
} |
1288 |
)->store; |
1289 |
|
1290 |
#enable HoldsLog |
1291 |
t::lib::Mocks::mock_preference( 'HoldsLog', 1 ); |
1292 |
|
1293 |
my $result_3 = $hold_2->move_hold( { new_biblionumber => $biblio4->biblionumber } ); |
1294 |
ok( $result_3->{success}, 'Hold successfully moved' ); |
1295 |
$hold_2->discard_changes; |
1296 |
is( $hold_2->priority, 4, "Hold priority is set to 4" ); |
1297 |
|
1298 |
my $logs_2 = Koha::ActionLogs->search( |
1299 |
{ |
1300 |
action => 'MODIFY', |
1301 |
module => 'HOLDS', |
1302 |
object => $hold_2->id |
1303 |
} |
1304 |
); |
1305 |
|
1306 |
is( $logs_2->count, 1, 'Hold modification was logged' ); |
1307 |
|
1308 |
#disable HoldsLog |
1309 |
t::lib::Mocks::mock_preference( 'HoldsLog', 1 ); |
1310 |
|
1311 |
$schema->storage->txn_rollback; |
1312 |
}; |