Lines 19-25
Link Here
|
19 |
|
19 |
|
20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
21 |
|
21 |
|
22 |
use Test::More tests => 8; |
22 |
use Test::More tests => 10; |
23 |
use Test::Exception; |
23 |
use Test::Exception; |
24 |
|
24 |
|
25 |
use C4::Biblio; |
25 |
use C4::Biblio; |
Lines 696-698
subtest 'Tests for itemtype' => sub {
Link Here
|
696 |
|
696 |
|
697 |
$schema->storage->txn_rollback; |
697 |
$schema->storage->txn_rollback; |
698 |
}; |
698 |
}; |
|
|
699 |
|
700 |
subtest 'move_to_biblio() tests' => sub { |
701 |
|
702 |
plan tests => 16; |
703 |
|
704 |
$schema->storage->txn_begin; |
705 |
|
706 |
my $dbh = C4::Context->dbh; |
707 |
|
708 |
my $source_biblio = $builder->build_sample_biblio(); |
709 |
my $target_biblio = $builder->build_sample_biblio(); |
710 |
|
711 |
my $source_biblionumber = $source_biblio->biblionumber; |
712 |
my $target_biblionumber = $target_biblio->biblionumber; |
713 |
|
714 |
my $item1 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
715 |
my $item2 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
716 |
my $item3 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
717 |
|
718 |
my $itemnumber1 = $item1->itemnumber; |
719 |
my $itemnumber2 = $item2->itemnumber; |
720 |
|
721 |
my $library = $builder->build_object({ class => 'Koha::Libraries' }); |
722 |
|
723 |
my $patron = $builder->build_object({ |
724 |
class => 'Koha::Patrons', |
725 |
value => { branchcode => $library->branchcode } |
726 |
}); |
727 |
my $borrowernumber = $patron->borrowernumber; |
728 |
|
729 |
my $aq_budget = $builder->build({ |
730 |
source => 'Aqbudget', |
731 |
value => { |
732 |
budget_notes => 'test', |
733 |
}, |
734 |
}); |
735 |
|
736 |
my $aq_order1 = $builder->build_object({ |
737 |
class => 'Koha::Acquisition::Orders', |
738 |
value => { |
739 |
biblionumber => $source_biblionumber, |
740 |
budget_id => $aq_budget->{budget_id}, |
741 |
}, |
742 |
}); |
743 |
my $aq_order_item1 = $builder->build({ |
744 |
source => 'AqordersItem', |
745 |
value => { |
746 |
ordernumber => $aq_order1->ordernumber, |
747 |
itemnumber => $itemnumber1, |
748 |
}, |
749 |
}); |
750 |
my $aq_order2 = $builder->build_object({ |
751 |
class => 'Koha::Acquisition::Orders', |
752 |
value => { |
753 |
biblionumber => $source_biblionumber, |
754 |
budget_id => $aq_budget->{budget_id}, |
755 |
}, |
756 |
}); |
757 |
my $aq_order_item2 = $builder->build({ |
758 |
source => 'AqordersItem', |
759 |
value => { |
760 |
ordernumber => $aq_order2->ordernumber, |
761 |
itemnumber => $itemnumber2, |
762 |
}, |
763 |
}); |
764 |
|
765 |
my $bib_level_hold = $builder->build_object({ |
766 |
class => 'Koha::Holds', |
767 |
value => { |
768 |
biblionumber => $source_biblionumber, |
769 |
}, |
770 |
}); |
771 |
my $item_level_hold1 = $builder->build_object({ |
772 |
class => 'Koha::Holds', |
773 |
value => { |
774 |
biblionumber => $source_biblionumber, |
775 |
itemnumber => $itemnumber1, |
776 |
}, |
777 |
}); |
778 |
my $item_level_hold2 = $builder->build_object({ |
779 |
class => 'Koha::Holds', |
780 |
value => { |
781 |
biblionumber => $source_biblionumber, |
782 |
itemnumber => $itemnumber2, |
783 |
} |
784 |
}); |
785 |
|
786 |
my $tmp_holdsqueue1 = $builder->build({ |
787 |
source => 'TmpHoldsqueue', |
788 |
value => { |
789 |
borrowernumber => $borrowernumber, |
790 |
biblionumber => $source_biblionumber, |
791 |
itemnumber => $itemnumber1, |
792 |
} |
793 |
}); |
794 |
my $tmp_holdsqueue2 = $builder->build({ |
795 |
source => 'TmpHoldsqueue', |
796 |
value => { |
797 |
borrowernumber => $borrowernumber, |
798 |
biblionumber => $source_biblionumber, |
799 |
itemnumber => $itemnumber2, |
800 |
} |
801 |
}); |
802 |
my $hold_fill_target1 = $builder->build({ |
803 |
source => 'HoldFillTarget', |
804 |
value => { |
805 |
borrowernumber => $borrowernumber, |
806 |
biblionumber => $source_biblionumber, |
807 |
itemnumber => $itemnumber1, |
808 |
} |
809 |
}); |
810 |
my $hold_fill_target2 = $builder->build({ |
811 |
source => 'HoldFillTarget', |
812 |
value => { |
813 |
borrowernumber => $borrowernumber, |
814 |
biblionumber => $source_biblionumber, |
815 |
itemnumber => $itemnumber2, |
816 |
} |
817 |
}); |
818 |
my $linktracker1 = $builder->build({ |
819 |
source => 'Linktracker', |
820 |
value => { |
821 |
borrowernumber => $borrowernumber, |
822 |
biblionumber => $source_biblionumber, |
823 |
itemnumber => $itemnumber1, |
824 |
} |
825 |
}); |
826 |
my $linktracker2 = $builder->build({ |
827 |
source => 'Linktracker', |
828 |
value => { |
829 |
borrowernumber => $borrowernumber, |
830 |
biblionumber => $source_biblionumber, |
831 |
itemnumber => $itemnumber2, |
832 |
} |
833 |
}); |
834 |
|
835 |
my $to_biblionumber_after_move = $item1->move_to_biblio($target_biblio); |
836 |
is($to_biblionumber_after_move, $target_biblionumber, 'move_to_biblio returns the target biblionumber if success'); |
837 |
|
838 |
$to_biblionumber_after_move = $item1->move_to_biblio($target_biblio); |
839 |
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'); |
840 |
|
841 |
my $get_item1 = Koha::Items->find( $item1->itemnumber ); |
842 |
is($get_item1->biblionumber, $target_biblionumber, 'item1 is moved'); |
843 |
my $get_item2 = Koha::Items->find( $item2->itemnumber ); |
844 |
is($get_item2->biblionumber, $source_biblionumber, 'item2 is not moved'); |
845 |
my $get_item3 = Koha::Items->find( $item3->itemnumber ); |
846 |
is($get_item3->biblionumber, $source_biblionumber, 'item3 is not moved'); |
847 |
|
848 |
$aq_order1->discard_changes; |
849 |
$aq_order2->discard_changes; |
850 |
is($aq_order1->biblionumber, $target_biblionumber, 'move_to_biblio moves aq_orders for item 1'); |
851 |
is($aq_order2->biblionumber, $source_biblionumber, 'move_to_biblio does not move aq_orders for item 2'); |
852 |
|
853 |
$bib_level_hold->discard_changes; |
854 |
$item_level_hold1->discard_changes; |
855 |
$item_level_hold2->discard_changes; |
856 |
is($bib_level_hold->biblionumber, $source_biblionumber, 'move_to_biblio does not move the biblio-level hold'); |
857 |
is($item_level_hold1->biblionumber, $target_biblionumber, 'move_to_biblio moves the item-level hold placed on item 1'); |
858 |
is($item_level_hold2->biblionumber, $source_biblionumber, 'move_to_biblio does not move the item-level hold placed on item 2'); |
859 |
|
860 |
my $get_tmp_holdsqueue1 = $schema->resultset('TmpHoldsqueue')->search({ itemnumber => $tmp_holdsqueue1->{itemnumber} })->single; |
861 |
my $get_tmp_holdsqueue2 = $schema->resultset('TmpHoldsqueue')->search({ itemnumber => $tmp_holdsqueue2->{itemnumber} })->single; |
862 |
is($get_tmp_holdsqueue1->biblionumber, $target_biblionumber, 'move_to_biblio moves tmp_holdsqueue for item 1'); |
863 |
is($get_tmp_holdsqueue2->biblionumber, $source_biblionumber, 'move_to_biblio does not move tmp_holdsqueue for item 2'); |
864 |
|
865 |
my $get_hold_fill_target1 = $schema->resultset('HoldFillTarget')->search({ itemnumber => $hold_fill_target1->{itemnumber} })->single; |
866 |
my $get_hold_fill_target2 = $schema->resultset('HoldFillTarget')->search({ itemnumber => $hold_fill_target2->{itemnumber} })->single; |
867 |
# Why does ->biblionumber return a Biblio object??? |
868 |
is($get_hold_fill_target1->biblionumber->biblionumber, $target_biblionumber, 'move_to_biblio moves hold_fill_targets for item 1'); |
869 |
is($get_hold_fill_target2->biblionumber->biblionumber, $source_biblionumber, 'move_to_biblio does not move hold_fill_targets for item 2'); |
870 |
|
871 |
my $get_linktracker1 = $schema->resultset('Linktracker')->search({ itemnumber => $linktracker1->{itemnumber} })->single; |
872 |
my $get_linktracker2 = $schema->resultset('Linktracker')->search({ itemnumber => $linktracker2->{itemnumber} })->single; |
873 |
is($get_linktracker1->biblionumber, $target_biblionumber, 'move_to_biblio moves linktracker for item 1'); |
874 |
is($get_linktracker2->biblionumber, $source_biblionumber, 'move_to_biblio does not move linktracker for item 2'); |
875 |
|
876 |
$schema->storage->txn_rollback; |
877 |
}; |