Lines 8-14
Link Here
|
8 |
|
8 |
|
9 |
use Modern::Perl; |
9 |
use Modern::Perl; |
10 |
|
10 |
|
11 |
use Test::More tests => 48; |
11 |
use Test::More tests => 50; |
12 |
use Data::Dumper; |
12 |
use Data::Dumper; |
13 |
|
13 |
|
14 |
use C4::Calendar; |
14 |
use C4::Calendar; |
Lines 794-826
Koha::Holds->find( $reserve_id )->cancel;
Link Here
|
794 |
# End testing hold itemtype limit |
794 |
# End testing hold itemtype limit |
795 |
|
795 |
|
796 |
|
796 |
|
797 |
# Test Local Holds Priority - Bug 18001 |
797 |
subtest "Test Local Holds Priority - Bib level" => sub { |
798 |
t::lib::Mocks::mock_preference('LocalHoldsPriority', 1); |
798 |
plan tests => 2; |
799 |
t::lib::Mocks::mock_preference('LocalHoldsPriorityPatronControl', 'PickupLibrary'); |
799 |
|
800 |
t::lib::Mocks::mock_preference('LocalHoldsPriorityItemControl', 'homebranch'); |
800 |
Koha::Biblios->delete(); |
|
|
801 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriority', 1 ); |
802 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriorityPatronControl', 'PickupLibrary' ); |
803 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriorityItemControl', 'homebranch' ); |
804 |
my $branch = $builder->build_object( { class => 'Koha::Libraries' } ); |
805 |
my $branch2 = $builder->build_object( { class => 'Koha::Libraries' } ); |
806 |
my $local_patron = $builder->build_object( |
807 |
{ |
808 |
class => "Koha::Patrons", |
809 |
value => { |
810 |
branchcode => $branch->branchcode |
811 |
} |
812 |
} |
813 |
); |
814 |
my $other_patron = $builder->build_object( |
815 |
{ |
816 |
class => "Koha::Patrons", |
817 |
value => { |
818 |
branchcode => $branch2->branchcode |
819 |
} |
820 |
} |
821 |
); |
822 |
my $biblio = $builder->build_sample_biblio(); |
823 |
my $item = $builder->build_sample_item( |
824 |
{ |
825 |
biblionumber => $biblio->biblionumber, |
826 |
library => $branch->branchcode, |
827 |
} |
828 |
); |
801 |
|
829 |
|
802 |
$dbh->do("DELETE FROM tmp_holdsqueue"); |
830 |
my $reserve_id = |
803 |
$dbh->do("DELETE FROM hold_fill_targets"); |
831 |
AddReserve( $branch2->branchcode, $other_patron->borrowernumber, |
804 |
$dbh->do("DELETE FROM reserves"); |
832 |
$biblio->biblionumber, '', 1, undef, undef, undef, undef, undef, undef, undef ); |
|
|
833 |
my $reserve_id2 = |
834 |
AddReserve( $item->homebranch, $local_patron->borrowernumber, |
835 |
$biblio->biblionumber, '', 2, undef, undef, undef, undef, undef, undef, undef ); |
805 |
|
836 |
|
806 |
$item = Koha::Items->find( { biblionumber => $biblionumber } ); |
837 |
C4::HoldsQueue::CreateQueue(); |
807 |
$item->holdingbranch( $item->homebranch ); |
|
|
808 |
$item->store(); |
809 |
|
838 |
|
810 |
my $item2 = Koha::Item->new( $item->unblessed ); |
839 |
my $queue_rs = $schema->resultset('TmpHoldsqueue'); |
811 |
$item2->itemnumber( undef ); |
840 |
is( $queue_rs->count(), 1, |
812 |
$item2->store(); |
841 |
"Hold queue contains one hold from chosen from three possible items" ); |
|
|
842 |
is( |
843 |
$queue_rs->next->borrowernumber, |
844 |
$local_patron->borrowernumber, |
845 |
"We should pick the local hold over the next available" |
846 |
); |
847 |
}; |
813 |
|
848 |
|
814 |
my $item3 = Koha::Item->new( $item->unblessed ); |
849 |
subtest "Test Local Holds Priority - Item level" => sub { |
815 |
$item3->itemnumber( undef ); |
850 |
plan tests => 2; |
816 |
$item3->store(); |
851 |
|
|
|
852 |
Koha::Biblios->delete(); |
853 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriority', 1 ); |
854 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriorityPatronControl', 'PickupLibrary' ); |
855 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriorityItemControl', 'homebranch' ); |
856 |
my $branch = $builder->build_object( { class => 'Koha::Libraries' } ); |
857 |
my $branch2 = $builder->build_object( { class => 'Koha::Libraries' } ); |
858 |
my $local_patron = $builder->build_object( |
859 |
{ |
860 |
class => "Koha::Patrons", |
861 |
value => { |
862 |
branchcode => $branch->branchcode |
863 |
} |
864 |
} |
865 |
); |
866 |
my $other_patron = $builder->build_object( |
867 |
{ |
868 |
class => "Koha::Patrons", |
869 |
value => { |
870 |
branchcode => $branch2->branchcode |
871 |
} |
872 |
} |
873 |
); |
874 |
my $biblio = $builder->build_sample_biblio(); |
875 |
my $item = $builder->build_sample_item( |
876 |
{ |
877 |
biblionumber => $biblio->biblionumber, |
878 |
library => $branch->branchcode, |
879 |
} |
880 |
); |
817 |
|
881 |
|
818 |
$reserve_id = AddReserve( $item->homebranch, $borrowernumber, $biblionumber, '', 1, undef, undef, undef, undef, undef, undef, undef ); |
882 |
my $reserve_id = |
|
|
883 |
AddReserve( $branch2->branchcode, $other_patron->borrowernumber, |
884 |
$biblio->biblionumber, '', 1, undef, undef, undef, undef, $item->id, undef, undef ); |
885 |
my $reserve_id2 = |
886 |
AddReserve( $item->homebranch, $local_patron->borrowernumber, |
887 |
$biblio->biblionumber, '', 2, undef, undef, undef, undef, $item->id, undef, undef ); |
819 |
|
888 |
|
820 |
C4::HoldsQueue::CreateQueue(); |
889 |
C4::HoldsQueue::CreateQueue(); |
|
|
890 |
|
891 |
my $queue_rs = $schema->resultset('TmpHoldsqueue'); |
892 |
my $q = $queue_rs->next; |
893 |
is( $queue_rs->count(), 1, |
894 |
"Hold queue contains one hold from chosen from three possible items" ); |
895 |
is( |
896 |
$q->borrowernumber, |
897 |
$local_patron->borrowernumber, |
898 |
"We should pick the local hold over the next available" |
899 |
); |
900 |
}; |
901 |
|
902 |
subtest "Test Local Holds Priority - Bug 18001" => sub { |
903 |
plan tests => 1; |
904 |
|
905 |
$dbh->do("DELETE FROM tmp_holdsqueue"); |
906 |
$dbh->do("DELETE FROM hold_fill_targets"); |
907 |
$dbh->do("DELETE FROM reserves"); |
908 |
$dbh->do("DELETE FROM issuingrules"); |
909 |
$dbh->do("DELETE FROM circulation_rules"); |
910 |
Koha::Biblios->delete(); |
911 |
|
912 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriority', 1 ); |
913 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriorityPatronControl', 'PickupLibrary' ); |
914 |
t::lib::Mocks::mock_preference( 'LocalHoldsPriorityItemControl', 'homebranch' ); |
915 |
my $branch = $builder->build_object( { class => 'Koha::Libraries' } ); |
916 |
my $branch2 = $builder->build_object( { class => 'Koha::Libraries' } ); |
917 |
my $patron = $builder->build_object( |
918 |
{ |
919 |
class => "Koha::Patrons", |
920 |
value => { |
921 |
branchcode => $branch->branchcode |
922 |
} |
923 |
} |
924 |
); |
925 |
my $biblio = $builder->build_sample_biblio(); |
926 |
my $item1 = $builder->build_sample_item( |
927 |
{ |
928 |
biblionumber => $biblio->biblionumber, |
929 |
library => $branch->branchcode, |
930 |
} |
931 |
); |
932 |
my $item2 = $builder->build_sample_item( |
933 |
{ |
934 |
biblionumber => $biblio->biblionumber, |
935 |
library => $branch->branchcode, |
936 |
} |
937 |
); |
938 |
|
939 |
my $item3 = $builder->build_sample_item( |
940 |
{ |
941 |
biblionumber => $biblio->biblionumber, |
942 |
library => $branch->branchcode, |
943 |
} |
944 |
); |
945 |
|
946 |
$reserve_id = |
947 |
AddReserve( $item1->homebranch, $patron->borrowernumber, $biblio->id, '', |
948 |
1, undef, undef, undef, undef, undef, undef, undef ); |
949 |
|
950 |
C4::HoldsQueue::CreateQueue(); |
951 |
|
952 |
my $queue_rs = $schema->resultset('TmpHoldsqueue'); |
953 |
|
954 |
is( $queue_rs->count(), 1, |
955 |
"Hold queue contains one hold from chosen from three possible items" ); |
956 |
}; |
821 |
|
957 |
|
822 |
my $queue_rs = $schema->resultset('TmpHoldsqueue'); |
|
|
823 |
is( $queue_rs->count(), 1, "Hold queue contains one hold from chosen from three possible items" ); |
824 |
|
958 |
|
825 |
subtest 'Trivial test for UpdateTransportCostMatrix' => sub { |
959 |
subtest 'Trivial test for UpdateTransportCostMatrix' => sub { |
826 |
plan tests => 1; |
960 |
plan tests => 1; |
827 |
- |
|
|