Lines 19-25
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 => 11; |
23 |
use Test::Exception; |
23 |
use Test::Exception; |
24 |
|
24 |
|
25 |
use C4::Biblio qw( GetMarcSubfieldStructure ); |
25 |
use C4::Biblio qw( GetMarcSubfieldStructure ); |
Lines 816-818
subtest 'get_transfers' => sub {
Link Here
|
816 |
|
816 |
|
817 |
$schema->storage->txn_rollback; |
817 |
$schema->storage->txn_rollback; |
818 |
}; |
818 |
}; |
|
|
819 |
|
820 |
subtest 'move_to_biblio() tests' => sub { |
821 |
|
822 |
plan tests => 16; |
823 |
|
824 |
$schema->storage->txn_begin; |
825 |
|
826 |
my $dbh = C4::Context->dbh; |
827 |
|
828 |
my $source_biblio = $builder->build_sample_biblio(); |
829 |
my $target_biblio = $builder->build_sample_biblio(); |
830 |
|
831 |
my $source_biblionumber = $source_biblio->biblionumber; |
832 |
my $target_biblionumber = $target_biblio->biblionumber; |
833 |
|
834 |
my $item1 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
835 |
my $item2 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
836 |
my $item3 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
837 |
|
838 |
my $itemnumber1 = $item1->itemnumber; |
839 |
my $itemnumber2 = $item2->itemnumber; |
840 |
|
841 |
my $library = $builder->build_object({ class => 'Koha::Libraries' }); |
842 |
|
843 |
my $patron = $builder->build_object({ |
844 |
class => 'Koha::Patrons', |
845 |
value => { branchcode => $library->branchcode } |
846 |
}); |
847 |
my $borrowernumber = $patron->borrowernumber; |
848 |
|
849 |
my $aq_budget = $builder->build({ |
850 |
source => 'Aqbudget', |
851 |
value => { |
852 |
budget_notes => 'test', |
853 |
}, |
854 |
}); |
855 |
|
856 |
my $aq_order1 = $builder->build_object({ |
857 |
class => 'Koha::Acquisition::Orders', |
858 |
value => { |
859 |
biblionumber => $source_biblionumber, |
860 |
budget_id => $aq_budget->{budget_id}, |
861 |
}, |
862 |
}); |
863 |
my $aq_order_item1 = $builder->build({ |
864 |
source => 'AqordersItem', |
865 |
value => { |
866 |
ordernumber => $aq_order1->ordernumber, |
867 |
itemnumber => $itemnumber1, |
868 |
}, |
869 |
}); |
870 |
my $aq_order2 = $builder->build_object({ |
871 |
class => 'Koha::Acquisition::Orders', |
872 |
value => { |
873 |
biblionumber => $source_biblionumber, |
874 |
budget_id => $aq_budget->{budget_id}, |
875 |
}, |
876 |
}); |
877 |
my $aq_order_item2 = $builder->build({ |
878 |
source => 'AqordersItem', |
879 |
value => { |
880 |
ordernumber => $aq_order2->ordernumber, |
881 |
itemnumber => $itemnumber2, |
882 |
}, |
883 |
}); |
884 |
|
885 |
my $bib_level_hold = $builder->build_object({ |
886 |
class => 'Koha::Holds', |
887 |
value => { |
888 |
biblionumber => $source_biblionumber, |
889 |
}, |
890 |
}); |
891 |
my $item_level_hold1 = $builder->build_object({ |
892 |
class => 'Koha::Holds', |
893 |
value => { |
894 |
biblionumber => $source_biblionumber, |
895 |
itemnumber => $itemnumber1, |
896 |
}, |
897 |
}); |
898 |
my $item_level_hold2 = $builder->build_object({ |
899 |
class => 'Koha::Holds', |
900 |
value => { |
901 |
biblionumber => $source_biblionumber, |
902 |
itemnumber => $itemnumber2, |
903 |
} |
904 |
}); |
905 |
|
906 |
my $tmp_holdsqueue1 = $builder->build({ |
907 |
source => 'TmpHoldsqueue', |
908 |
value => { |
909 |
borrowernumber => $borrowernumber, |
910 |
biblionumber => $source_biblionumber, |
911 |
itemnumber => $itemnumber1, |
912 |
} |
913 |
}); |
914 |
my $tmp_holdsqueue2 = $builder->build({ |
915 |
source => 'TmpHoldsqueue', |
916 |
value => { |
917 |
borrowernumber => $borrowernumber, |
918 |
biblionumber => $source_biblionumber, |
919 |
itemnumber => $itemnumber2, |
920 |
} |
921 |
}); |
922 |
my $hold_fill_target1 = $builder->build({ |
923 |
source => 'HoldFillTarget', |
924 |
value => { |
925 |
borrowernumber => $borrowernumber, |
926 |
biblionumber => $source_biblionumber, |
927 |
itemnumber => $itemnumber1, |
928 |
} |
929 |
}); |
930 |
my $hold_fill_target2 = $builder->build({ |
931 |
source => 'HoldFillTarget', |
932 |
value => { |
933 |
borrowernumber => $borrowernumber, |
934 |
biblionumber => $source_biblionumber, |
935 |
itemnumber => $itemnumber2, |
936 |
} |
937 |
}); |
938 |
my $linktracker1 = $builder->build({ |
939 |
source => 'Linktracker', |
940 |
value => { |
941 |
borrowernumber => $borrowernumber, |
942 |
biblionumber => $source_biblionumber, |
943 |
itemnumber => $itemnumber1, |
944 |
} |
945 |
}); |
946 |
my $linktracker2 = $builder->build({ |
947 |
source => 'Linktracker', |
948 |
value => { |
949 |
borrowernumber => $borrowernumber, |
950 |
biblionumber => $source_biblionumber, |
951 |
itemnumber => $itemnumber2, |
952 |
} |
953 |
}); |
954 |
|
955 |
my $to_biblionumber_after_move = $item1->move_to_biblio($target_biblio); |
956 |
is($to_biblionumber_after_move, $target_biblionumber, 'move_to_biblio returns the target biblionumber if success'); |
957 |
|
958 |
$to_biblionumber_after_move = $item1->move_to_biblio($target_biblio); |
959 |
is($to_biblionumber_after_move, undef, 'move_to_biblio returns undef if the move has failed. If called twice, the item is not attached to the first biblio anymore'); |
960 |
|
961 |
my $get_item1 = Koha::Items->find( $item1->itemnumber ); |
962 |
is($get_item1->biblionumber, $target_biblionumber, 'item1 is moved'); |
963 |
my $get_item2 = Koha::Items->find( $item2->itemnumber ); |
964 |
is($get_item2->biblionumber, $source_biblionumber, 'item2 is not moved'); |
965 |
my $get_item3 = Koha::Items->find( $item3->itemnumber ); |
966 |
is($get_item3->biblionumber, $source_biblionumber, 'item3 is not moved'); |
967 |
|
968 |
$aq_order1->discard_changes; |
969 |
$aq_order2->discard_changes; |
970 |
is($aq_order1->biblionumber, $target_biblionumber, 'move_to_biblio moves aq_orders for item 1'); |
971 |
is($aq_order2->biblionumber, $source_biblionumber, 'move_to_biblio does not move aq_orders for item 2'); |
972 |
|
973 |
$bib_level_hold->discard_changes; |
974 |
$item_level_hold1->discard_changes; |
975 |
$item_level_hold2->discard_changes; |
976 |
is($bib_level_hold->biblionumber, $source_biblionumber, 'move_to_biblio does not move the biblio-level hold'); |
977 |
is($item_level_hold1->biblionumber, $target_biblionumber, 'move_to_biblio moves the item-level hold placed on item 1'); |
978 |
is($item_level_hold2->biblionumber, $source_biblionumber, 'move_to_biblio does not move the item-level hold placed on item 2'); |
979 |
|
980 |
my $get_tmp_holdsqueue1 = $schema->resultset('TmpHoldsqueue')->search({ itemnumber => $tmp_holdsqueue1->{itemnumber} })->single; |
981 |
my $get_tmp_holdsqueue2 = $schema->resultset('TmpHoldsqueue')->search({ itemnumber => $tmp_holdsqueue2->{itemnumber} })->single; |
982 |
is($get_tmp_holdsqueue1->biblionumber, $target_biblionumber, 'move_to_biblio moves tmp_holdsqueue for item 1'); |
983 |
is($get_tmp_holdsqueue2->biblionumber, $source_biblionumber, 'move_to_biblio does not move tmp_holdsqueue for item 2'); |
984 |
|
985 |
my $get_hold_fill_target1 = $schema->resultset('HoldFillTarget')->search({ itemnumber => $hold_fill_target1->{itemnumber} })->single; |
986 |
my $get_hold_fill_target2 = $schema->resultset('HoldFillTarget')->search({ itemnumber => $hold_fill_target2->{itemnumber} })->single; |
987 |
# Why does ->biblionumber return a Biblio object??? |
988 |
is($get_hold_fill_target1->biblionumber->biblionumber, $target_biblionumber, 'move_to_biblio moves hold_fill_targets for item 1'); |
989 |
is($get_hold_fill_target2->biblionumber->biblionumber, $source_biblionumber, 'move_to_biblio does not move hold_fill_targets for item 2'); |
990 |
|
991 |
my $get_linktracker1 = $schema->resultset('Linktracker')->search({ itemnumber => $linktracker1->{itemnumber} })->single; |
992 |
my $get_linktracker2 = $schema->resultset('Linktracker')->search({ itemnumber => $linktracker2->{itemnumber} })->single; |
993 |
is($get_linktracker1->biblionumber, $target_biblionumber, 'move_to_biblio moves linktracker for item 1'); |
994 |
is($get_linktracker2->biblionumber, $source_biblionumber, 'move_to_biblio does not move linktracker for item 2'); |
995 |
|
996 |
$schema->storage->txn_rollback; |
997 |
}; |