Lines 19-28
Link Here
|
19 |
|
19 |
|
20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
21 |
|
21 |
|
22 |
use Test::More tests => 9; |
22 |
use Test::More tests => 10; |
23 |
|
23 |
|
24 |
use Test::Exception; |
24 |
use Test::Exception; |
25 |
use Test::MockModule; |
25 |
use Test::MockModule; |
|
|
26 |
use Test::Warn; |
26 |
|
27 |
|
27 |
use t::lib::Mocks; |
28 |
use t::lib::Mocks; |
28 |
use t::lib::TestBuilder; |
29 |
use t::lib::TestBuilder; |
Lines 863-865
subtest 'cancellation_requestable_from_opac() tests' => sub {
Link Here
|
863 |
|
864 |
|
864 |
$schema->storage->txn_rollback; |
865 |
$schema->storage->txn_rollback; |
865 |
}; |
866 |
}; |
866 |
- |
867 |
|
|
|
868 |
subtest 'cancel() tests' => sub { |
869 |
|
870 |
plan tests => 12; |
871 |
|
872 |
$schema->storage->txn_begin; |
873 |
|
874 |
my $get_prepared_letter_called; |
875 |
|
876 |
# Mock GetPreparedLetter so it raises a warning we can look for |
877 |
# and returns undef, so no call to EnqueueLetter happens |
878 |
my $mocked_letter = Test::MockModule->new("C4::Letters"); |
879 |
$mocked_letter->mock( 'GetPreparedLetter', sub { |
880 |
$get_prepared_letter_called = 1; |
881 |
return; |
882 |
}); |
883 |
|
884 |
my $hold = $builder->build_object( |
885 |
{ |
886 |
class => 'Koha::Holds', |
887 |
value => { |
888 |
cancellationdate => undef, |
889 |
priority => 1, |
890 |
cancellation_reason => undef, |
891 |
} |
892 |
} |
893 |
); |
894 |
|
895 |
# leave this things out of the test |
896 |
t::lib::Mocks::mock_preference( 'ExpireReservesMaxPickUpDelayCharge', 0 ); |
897 |
t::lib::Mocks::mock_preference( 'HoldsLog', 0 ); |
898 |
|
899 |
$hold = $builder->build_object( |
900 |
{ |
901 |
class => 'Koha::Holds', |
902 |
value => { |
903 |
cancellationdate => undef, |
904 |
priority => 1, |
905 |
cancellation_reason => undef, |
906 |
} |
907 |
} |
908 |
); |
909 |
|
910 |
$get_prepared_letter_called = 0; |
911 |
$hold->cancel({ cancellation_reason => 'Some reason' }); |
912 |
ok( !$get_prepared_letter_called, 'GetPreparedLetter not called' ); |
913 |
|
914 |
isnt( $hold->cancellationdate, undef, 'cancellationdate gets set to the passed value' ); |
915 |
is( $hold->priority, 0, 'priority gets set to 0' ); |
916 |
is( $hold->cancellation_reason, 'Some reason', 'cancellation_reason is set to the passed value' ); |
917 |
|
918 |
$hold = $builder->build_object( |
919 |
{ |
920 |
class => 'Koha::Holds', |
921 |
value => { |
922 |
cancellationdate => undef, |
923 |
priority => 1, |
924 |
cancellation_reason => undef, |
925 |
} |
926 |
} |
927 |
); |
928 |
|
929 |
$get_prepared_letter_called = 0; |
930 |
$hold->cancel({ cancellation_reason => 'Some reason', notify_patron => 1 }); |
931 |
ok( $get_prepared_letter_called, 'GetPreparedLetter called if notify_patron and cancellation_reason passed' ); |
932 |
|
933 |
isnt( $hold->cancellationdate, undef, 'cancellationdate gets set to the passed value' ); |
934 |
is( $hold->priority, 0, 'priority gets set to 0' ); |
935 |
is( $hold->cancellation_reason, 'Some reason', 'cancellation_reason is set to the passed value' ); |
936 |
|
937 |
$hold = $builder->build_object( |
938 |
{ |
939 |
class => 'Koha::Holds', |
940 |
value => { |
941 |
cancellationdate => undef, |
942 |
priority => 1, |
943 |
cancellation_reason => undef, |
944 |
} |
945 |
} |
946 |
); |
947 |
|
948 |
$get_prepared_letter_called = 0; |
949 |
$hold->cancel({ notify_patron => 1 }); |
950 |
ok( $get_prepared_letter_called, 'GetPreparedLetter called if notify_patron passed' ); |
951 |
|
952 |
isnt( $hold->cancellationdate, undef, 'cancellationdate gets set to the passed value' ); |
953 |
is( $hold->priority, 0, 'priority gets set to 0' ); |
954 |
is( $hold->cancellation_reason, undef, 'cancellation_reason not passed' ); |
955 |
|
956 |
$schema->storage->txn_rollback; |
957 |
}; |