Lines 17-23
Link Here
|
17 |
|
17 |
|
18 |
use Modern::Perl; |
18 |
use Modern::Perl; |
19 |
|
19 |
|
20 |
use Test::More tests => 69; |
20 |
use Test::More tests => 68; |
21 |
use Test::MockModule; |
21 |
use Test::MockModule; |
22 |
use Test::Warn; |
22 |
use Test::Warn; |
23 |
|
23 |
|
Lines 33-39
use C4::Biblio qw( GetMarcFromKohaField ModBiblio );
Link Here
|
33 |
use C4::HoldsQueue; |
33 |
use C4::HoldsQueue; |
34 |
use C4::Members; |
34 |
use C4::Members; |
35 |
use C4::Reserves |
35 |
use C4::Reserves |
36 |
qw( AddReserve AlterPriority CheckReserves ModReserve ModReserveAffect ReserveSlip CalculatePriority CanBookBeReserved IsAvailableForItemLevelRequest MoveReserve ChargeReserveFee RevertWaitingStatus CanItemBeReserved MergeHolds ); |
36 |
qw( AddReserve AlterPriority CheckReserves ModReserve ModReserveAffect ReserveSlip CalculatePriority CanBookBeReserved IsAvailableForItemLevelRequest MoveReserve ChargeReserveFee CanItemBeReserved MergeHolds ); |
37 |
use Koha::ActionLogs; |
37 |
use Koha::ActionLogs; |
38 |
use Koha::Biblios; |
38 |
use Koha::Biblios; |
39 |
use Koha::Caches; |
39 |
use Koha::Caches; |
Lines 1021-1138
subtest 'ChargeReserveFee tests' => sub {
Link Here
|
1021 |
is( $line->branchcode, $library->id, "Library id is picked from userenv and stored correctly" ); |
1021 |
is( $line->branchcode, $library->id, "Library id is picked from userenv and stored correctly" ); |
1022 |
}; |
1022 |
}; |
1023 |
|
1023 |
|
1024 |
subtest 'reserves.item_level_hold' => sub { |
|
|
1025 |
plan tests => 2; |
1026 |
|
1027 |
my $item = $builder->build_sample_item; |
1028 |
my $patron = $builder->build_object( |
1029 |
{ |
1030 |
class => 'Koha::Patrons', |
1031 |
value => { branchcode => $item->homebranch } |
1032 |
} |
1033 |
); |
1034 |
|
1035 |
subtest 'item level hold' => sub { |
1036 |
plan tests => 5; |
1037 |
my $reserve_id = AddReserve( |
1038 |
{ |
1039 |
branchcode => $item->homebranch, |
1040 |
borrowernumber => $patron->borrowernumber, |
1041 |
biblionumber => $item->biblionumber, |
1042 |
priority => 1, |
1043 |
itemnumber => $item->itemnumber, |
1044 |
} |
1045 |
); |
1046 |
|
1047 |
my $hold = Koha::Holds->find($reserve_id); |
1048 |
is( $hold->item_level_hold, 1, 'item_level_hold should be set when AddReserve is called with a specific item' ); |
1049 |
|
1050 |
# Mark it waiting |
1051 |
ModReserveAffect( $item->itemnumber, $patron->borrowernumber, 1 ); |
1052 |
|
1053 |
my $mock = Test::MockModule->new('Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue'); |
1054 |
$mock->mock( |
1055 |
'enqueue', |
1056 |
sub { |
1057 |
my ( $self, $args ) = @_; |
1058 |
is_deeply( |
1059 |
$args->{biblio_ids}, |
1060 |
[ $hold->biblionumber ], |
1061 |
"AlterPriority triggers a holds queue update for the related biblio" |
1062 |
); |
1063 |
} |
1064 |
); |
1065 |
|
1066 |
t::lib::Mocks::mock_preference( 'RealTimeHoldsQueue', 1 ); |
1067 |
t::lib::Mocks::mock_preference( 'HoldsLog', 1 ); |
1068 |
|
1069 |
# Revert the waiting status |
1070 |
C4::Reserves::RevertWaitingStatus( { itemnumber => $item->itemnumber } ); |
1071 |
|
1072 |
$hold = Koha::Holds->find($reserve_id); |
1073 |
|
1074 |
is( |
1075 |
$hold->itemnumber, $item->itemnumber, |
1076 |
'Itemnumber should not be removed when the waiting status is revert' |
1077 |
); |
1078 |
|
1079 |
my $log = |
1080 |
Koha::ActionLogs->search( { module => 'HOLDS', action => 'MODIFY', object => $hold->reserve_id } )->next; |
1081 |
my $expected = sprintf q{'timestamp' => '%s'}, $hold->timestamp; |
1082 |
like( $log->info, qr{$expected}, 'Timestamp logged is the current one' ); |
1083 |
my $log_count = |
1084 |
Koha::ActionLogs->search( { module => 'HOLDS', action => 'MODIFY', object => $hold->reserve_id } )->count; |
1085 |
|
1086 |
t::lib::Mocks::mock_preference( 'RealTimeHoldsQueue', 0 ); |
1087 |
t::lib::Mocks::mock_preference( 'HoldsLog', 0 ); |
1088 |
|
1089 |
$hold->set_waiting; |
1090 |
|
1091 |
# Revert the waiting status, RealTimeHoldsQueue => shouldn't add a test |
1092 |
C4::Reserves::RevertWaitingStatus( { itemnumber => $item->itemnumber } ); |
1093 |
|
1094 |
$hold->delete; # cleanup |
1095 |
|
1096 |
my $log_count_after = |
1097 |
Koha::ActionLogs->search( { module => 'HOLDS', action => 'MODIFY', object => $hold->reserve_id } )->count; |
1098 |
is( $log_count, $log_count_after, "No logging is added for RevertWaitingStatus when HoldsLog is disabled" ); |
1099 |
|
1100 |
}; |
1101 |
|
1102 |
subtest 'biblio level hold' => sub { |
1103 |
plan tests => 3; |
1104 |
my $reserve_id = AddReserve( |
1105 |
{ |
1106 |
branchcode => $item->homebranch, |
1107 |
borrowernumber => $patron->borrowernumber, |
1108 |
biblionumber => $item->biblionumber, |
1109 |
priority => 1, |
1110 |
} |
1111 |
); |
1112 |
|
1113 |
my $hold = Koha::Holds->find($reserve_id); |
1114 |
is( |
1115 |
$hold->item_level_hold, 0, |
1116 |
'item_level_hold should not be set when AddReserve is called without a specific item' |
1117 |
); |
1118 |
|
1119 |
# Mark it waiting |
1120 |
ModReserveAffect( $item->itemnumber, $patron->borrowernumber, 1 ); |
1121 |
|
1122 |
$hold = Koha::Holds->find($reserve_id); |
1123 |
is( $hold->itemnumber, $item->itemnumber, 'Itemnumber should be set on hold confirmation' ); |
1124 |
|
1125 |
# Revert the waiting status |
1126 |
C4::Reserves::RevertWaitingStatus( { itemnumber => $item->itemnumber } ); |
1127 |
|
1128 |
$hold = Koha::Holds->find($reserve_id); |
1129 |
is( $hold->itemnumber, undef, 'Itemnumber should be removed when the waiting status is revert' ); |
1130 |
|
1131 |
$hold->delete; |
1132 |
}; |
1133 |
|
1134 |
}; |
1135 |
|
1136 |
subtest 'MoveReserve additional test' => sub { |
1024 |
subtest 'MoveReserve additional test' => sub { |
1137 |
|
1025 |
|
1138 |
plan tests => 8; |
1026 |
plan tests => 8; |
Lines 1208-1214
subtest 'MoveReserve additional test' => sub {
Link Here
|
1208 |
|
1096 |
|
1209 |
}; |
1097 |
}; |
1210 |
|
1098 |
|
1211 |
subtest 'RevertWaitingStatus' => sub { |
1099 |
# FIXME: Should be in Circulation.t |
|
|
1100 |
subtest 'AddIssue calls $hold->revert_waiting()' => sub { |
1212 |
|
1101 |
|
1213 |
plan tests => 2; |
1102 |
plan tests => 2; |
1214 |
|
1103 |
|