Lines 19-25
Link Here
|
19 |
|
19 |
|
20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
21 |
|
21 |
|
22 |
use Test::More tests => 7; |
22 |
use Test::More tests => 8; |
23 |
|
23 |
|
24 |
use C4::Biblio; |
24 |
use C4::Biblio; |
25 |
use C4::Circulation; |
25 |
use C4::Circulation; |
Lines 163-170
subtest 'pickup_locations' => sub {
Link Here
|
163 |
my $dbh = C4::Context->dbh; |
163 |
my $dbh = C4::Context->dbh; |
164 |
|
164 |
|
165 |
# Cleanup database |
165 |
# Cleanup database |
166 |
Koha::Holds->search->delete; |
|
|
167 |
$dbh->do('DELETE FROM issues'); |
166 |
$dbh->do('DELETE FROM issues'); |
|
|
167 |
Koha::Holds->search->delete; |
168 |
Koha::Patrons->search->delete; |
168 |
Koha::Patrons->search->delete; |
169 |
Koha::Items->search->delete; |
169 |
Koha::Items->search->delete; |
170 |
Koha::Libraries->search->delete; |
170 |
Koha::Libraries->search->delete; |
Lines 516-518
subtest 'Tests for itemtype' => sub {
Link Here
|
516 |
|
516 |
|
517 |
$schema->storage->txn_rollback; |
517 |
$schema->storage->txn_rollback; |
518 |
}; |
518 |
}; |
|
|
519 |
|
520 |
subtest 'move_to_biblio() tests' => sub { |
521 |
|
522 |
plan tests => 16; |
523 |
|
524 |
$schema->storage->txn_begin; |
525 |
|
526 |
my $dbh = C4::Context->dbh; |
527 |
|
528 |
my $source_biblio = $builder->build_sample_biblio(); |
529 |
my $target_biblio = $builder->build_sample_biblio(); |
530 |
|
531 |
my $source_biblionumber = $source_biblio->biblionumber; |
532 |
my $target_biblionumber = $target_biblio->biblionumber; |
533 |
|
534 |
my $item1 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
535 |
my $item2 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
536 |
my $item3 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); |
537 |
|
538 |
my $itemnumber1 = $item1->itemnumber; |
539 |
my $itemnumber2 = $item2->itemnumber; |
540 |
|
541 |
my $library = $builder->build_object({ class => 'Koha::Libraries' }); |
542 |
|
543 |
my $patron = $builder->build_object({ |
544 |
class => 'Koha::Patrons', |
545 |
value => { branchcode => $library->branchcode } |
546 |
}); |
547 |
my $borrowernumber = $patron->borrowernumber; |
548 |
|
549 |
my $aq_budget = $builder->build({ |
550 |
source => 'Aqbudget', |
551 |
value => { |
552 |
budget_notes => 'test', |
553 |
}, |
554 |
}); |
555 |
|
556 |
my $aq_order1 = $builder->build_object({ |
557 |
class => 'Koha::Acquisition::Orders', |
558 |
value => { |
559 |
biblionumber => $source_biblionumber, |
560 |
budget_id => $aq_budget->{budget_id}, |
561 |
}, |
562 |
}); |
563 |
my $aq_order_item1 = $builder->build({ |
564 |
source => 'AqordersItem', |
565 |
value => { |
566 |
ordernumber => $aq_order1->ordernumber, |
567 |
itemnumber => $itemnumber1, |
568 |
}, |
569 |
}); |
570 |
my $aq_order2 = $builder->build_object({ |
571 |
class => 'Koha::Acquisition::Orders', |
572 |
value => { |
573 |
biblionumber => $source_biblionumber, |
574 |
budget_id => $aq_budget->{budget_id}, |
575 |
}, |
576 |
}); |
577 |
my $aq_order_item2 = $builder->build({ |
578 |
source => 'AqordersItem', |
579 |
value => { |
580 |
ordernumber => $aq_order2->ordernumber, |
581 |
itemnumber => $itemnumber2, |
582 |
}, |
583 |
}); |
584 |
|
585 |
my $bib_level_hold = $builder->build_object({ |
586 |
class => 'Koha::Holds', |
587 |
value => { |
588 |
biblionumber => $source_biblionumber, |
589 |
}, |
590 |
}); |
591 |
my $item_level_hold1 = $builder->build_object({ |
592 |
class => 'Koha::Holds', |
593 |
value => { |
594 |
biblionumber => $source_biblionumber, |
595 |
itemnumber => $itemnumber1, |
596 |
}, |
597 |
}); |
598 |
my $item_level_hold2 = $builder->build_object({ |
599 |
class => 'Koha::Holds', |
600 |
value => { |
601 |
biblionumber => $source_biblionumber, |
602 |
itemnumber => $itemnumber2, |
603 |
} |
604 |
}); |
605 |
|
606 |
my $tmp_holdsqueue1 = $builder->build({ |
607 |
source => 'TmpHoldsqueue', |
608 |
value => { |
609 |
borrowernumber => $borrowernumber, |
610 |
biblionumber => $source_biblionumber, |
611 |
itemnumber => $itemnumber1, |
612 |
} |
613 |
}); |
614 |
my $tmp_holdsqueue2 = $builder->build({ |
615 |
source => 'TmpHoldsqueue', |
616 |
value => { |
617 |
borrowernumber => $borrowernumber, |
618 |
biblionumber => $source_biblionumber, |
619 |
itemnumber => $itemnumber2, |
620 |
} |
621 |
}); |
622 |
my $hold_fill_target1 = $builder->build({ |
623 |
source => 'HoldFillTarget', |
624 |
value => { |
625 |
borrowernumber => $borrowernumber, |
626 |
biblionumber => $source_biblionumber, |
627 |
itemnumber => $itemnumber1, |
628 |
} |
629 |
}); |
630 |
my $hold_fill_target2 = $builder->build({ |
631 |
source => 'HoldFillTarget', |
632 |
value => { |
633 |
borrowernumber => $borrowernumber, |
634 |
biblionumber => $source_biblionumber, |
635 |
itemnumber => $itemnumber2, |
636 |
} |
637 |
}); |
638 |
my $linktracker1 = $builder->build({ |
639 |
source => 'Linktracker', |
640 |
value => { |
641 |
borrowernumber => $borrowernumber, |
642 |
biblionumber => $source_biblionumber, |
643 |
itemnumber => $itemnumber1, |
644 |
} |
645 |
}); |
646 |
my $linktracker2 = $builder->build({ |
647 |
source => 'Linktracker', |
648 |
value => { |
649 |
borrowernumber => $borrowernumber, |
650 |
biblionumber => $source_biblionumber, |
651 |
itemnumber => $itemnumber2, |
652 |
} |
653 |
}); |
654 |
|
655 |
my $to_biblionumber_after_move = $item1->move_to_biblio($target_biblio); |
656 |
is($to_biblionumber_after_move, $target_biblionumber, 'move_to_biblio returns the target biblionumber if success'); |
657 |
|
658 |
$to_biblionumber_after_move = $item1->move_to_biblio($target_biblio); |
659 |
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'); |
660 |
|
661 |
my $get_item1 = Koha::Items->find( $item1->itemnumber ); |
662 |
is($get_item1->biblionumber, $target_biblionumber, 'item1 is moved'); |
663 |
my $get_item2 = Koha::Items->find( $item2->itemnumber ); |
664 |
is($get_item2->biblionumber, $source_biblionumber, 'item2 is not moved'); |
665 |
my $get_item3 = Koha::Items->find( $item3->itemnumber ); |
666 |
is($get_item3->biblionumber, $source_biblionumber, 'item3 is not moved'); |
667 |
|
668 |
$aq_order1->discard_changes; |
669 |
$aq_order2->discard_changes; |
670 |
is($aq_order1->biblionumber, $target_biblionumber, 'move_to_biblio moves aq_orders for item 1'); |
671 |
is($aq_order2->biblionumber, $source_biblionumber, 'move_to_biblio does not move aq_orders for item 2'); |
672 |
|
673 |
$bib_level_hold->discard_changes; |
674 |
$item_level_hold1->discard_changes; |
675 |
$item_level_hold2->discard_changes; |
676 |
is($bib_level_hold->biblionumber, $source_biblionumber, 'move_to_biblio does not move the biblio-level hold'); |
677 |
is($item_level_hold1->biblionumber, $target_biblionumber, 'move_to_biblio moves the item-level hold placed on item 1'); |
678 |
is($item_level_hold2->biblionumber, $source_biblionumber, 'move_to_biblio does not move the item-level hold placed on item 2'); |
679 |
|
680 |
my $get_tmp_holdsqueue1 = $schema->resultset('TmpHoldsqueue')->search({ itemnumber => $tmp_holdsqueue1->{itemnumber} })->single; |
681 |
my $get_tmp_holdsqueue2 = $schema->resultset('TmpHoldsqueue')->search({ itemnumber => $tmp_holdsqueue2->{itemnumber} })->single; |
682 |
is($get_tmp_holdsqueue1->biblionumber, $target_biblionumber, 'move_to_biblio moves tmp_holdsqueue for item 1'); |
683 |
is($get_tmp_holdsqueue2->biblionumber, $source_biblionumber, 'move_to_biblio does not move tmp_holdsqueue for item 2'); |
684 |
|
685 |
my $get_hold_fill_target1 = $schema->resultset('HoldFillTarget')->search({ itemnumber => $hold_fill_target1->{itemnumber} })->single; |
686 |
my $get_hold_fill_target2 = $schema->resultset('HoldFillTarget')->search({ itemnumber => $hold_fill_target2->{itemnumber} })->single; |
687 |
# Why does ->biblionumber return a Biblio object??? |
688 |
is($get_hold_fill_target1->biblionumber->biblionumber, $target_biblionumber, 'move_to_biblio moves hold_fill_targets for item 1'); |
689 |
is($get_hold_fill_target2->biblionumber->biblionumber, $source_biblionumber, 'move_to_biblio does not move hold_fill_targets for item 2'); |
690 |
|
691 |
my $get_linktracker1 = $schema->resultset('Linktracker')->search({ itemnumber => $linktracker1->{itemnumber} })->single; |
692 |
my $get_linktracker2 = $schema->resultset('Linktracker')->search({ itemnumber => $linktracker2->{itemnumber} })->single; |
693 |
is($get_linktracker1->biblionumber, $target_biblionumber, 'move_to_biblio moves linktracker for item 1'); |
694 |
is($get_linktracker2->biblionumber, $source_biblionumber, 'move_to_biblio does not move linktracker for item 2'); |
695 |
|
696 |
$schema->storage->txn_rollback; |
697 |
}; |