View | Details | Raw Unified | Return to bug 27281
Collapse All | Expand All

(-)a/t/db_dependent/Koha/Item.t (-2 / +100 lines)
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 => 9;
23
use Test::Exception;
23
use Test::Exception;
24
24
25
use C4::Biblio;
25
use C4::Biblio;
Lines 691-693 subtest 'Tests for itemtype' => sub { Link Here
691
691
692
    $schema->storage->txn_rollback;
692
    $schema->storage->txn_rollback;
693
};
693
};
694
- 
694
695
subtest 'get_transfers' => sub {
696
    plan tests => 16;
697
    $schema->storage->txn_begin;
698
699
    my $item = $builder->build_sample_item();
700
701
    my $transfers = $item->get_transfers();
702
    is(ref($transfers), 'Koha::Item::Transfers', 'Koha::Item->get_transfer should return a Koha::Item::Transfers object' );
703
    is($transfers->count, 0, 'When no transfers exist, the Koha::Item:Transfers object should be empty');
704
705
    my $library_to = $builder->build_object( { class => 'Koha::Libraries' } );
706
707
    my $transfer_1 = $builder->build_object(
708
        {
709
            class => 'Koha::Item::Transfers',
710
            value => {
711
                itemnumber    => $item->itemnumber,
712
                frombranch    => $item->holdingbranch,
713
                tobranch      => $library_to->branchcode,
714
                reason        => 'Manual',
715
                datesent      => undef,
716
                datearrived   => undef,
717
                datecancelled => undef,
718
                daterequested => \'NOW()'
719
            }
720
        }
721
    );
722
723
    $transfers = $item->get_transfers();
724
    is($transfers->count, 1, 'When one transfer has been reqeusted, the Koha::Item:Transfers object should contain one result');
725
726
    my $transfer_2 = $builder->build_object(
727
        {
728
            class => 'Koha::Item::Transfers',
729
            value => {
730
                itemnumber    => $item->itemnumber,
731
                frombranch    => $item->holdingbranch,
732
                tobranch      => $library_to->branchcode,
733
                reason        => 'Manual',
734
                datesent      => undef,
735
                datearrived   => undef,
736
                datecancelled => undef,
737
                daterequested => \'NOW()'
738
            }
739
        }
740
    );
741
742
    my $transfer_3 = $builder->build_object(
743
        {
744
            class => 'Koha::Item::Transfers',
745
            value => {
746
                itemnumber    => $item->itemnumber,
747
                frombranch    => $item->holdingbranch,
748
                tobranch      => $library_to->branchcode,
749
                reason        => 'Manual',
750
                datesent      => undef,
751
                datearrived   => undef,
752
                datecancelled => undef,
753
                daterequested => \'NOW()'
754
            }
755
        }
756
    );
757
758
    $transfers = $item->get_transfers();
759
    is($transfers->count, 3, 'When there are multiple open transfer requests, the Koha::Item::Transfers object contains them all');
760
    my $result_1 = $transfers->next;
761
    my $result_2 = $transfers->next;
762
    my $result_3 = $transfers->next;
763
    is( $result_1->branchtransfer_id, $transfer_1->branchtransfer_id, 'Koha::Item->get_transfers returns the oldest transfer request first');
764
    is( $result_2->branchtransfer_id, $transfer_2->branchtransfer_id, 'Koha::Item->get_transfers returns the newer transfer request second');
765
    is( $result_3->branchtransfer_id, $transfer_3->branchtransfer_id, 'Koha::Item->get_transfers returns the newest transfer request last');
766
767
    $transfer_2->datesent(\'NOW()')->store;
768
    $transfers = $item->get_transfers();
769
    is($transfers->count, 3, 'When one transfer is set to in_transit, the Koha::Item::Transfers object still contains them all');
770
    $result_1 = $transfers->next;
771
    $result_2 = $transfers->next;
772
    $result_3 = $transfers->next;
773
    is( $result_1->branchtransfer_id, $transfer_2->branchtransfer_id, 'Koha::Item->get_transfers returns the active transfer request first');
774
    is( $result_2->branchtransfer_id, $transfer_1->branchtransfer_id, 'Koha::Item->get_transfers returns the other transfers oldest to newest');
775
    is( $result_3->branchtransfer_id, $transfer_3->branchtransfer_id, 'Koha::Item->get_transfers returns the other transfers oldest to newest');
776
777
    $transfer_2->datearrived(\'NOW()')->store;
778
    $transfers = $item->get_transfers();
779
    is($transfers->count, 2, 'Once a transfer is recieved, it no longer appears in the list from ->get_transfers()');
780
    $result_1 = $transfers->next;
781
    $result_2 = $transfers->next;
782
    is( $result_1->branchtransfer_id, $transfer_1->branchtransfer_id, 'Koha::Item->get_transfers returns the other transfers oldest to newest');
783
    is( $result_2->branchtransfer_id, $transfer_3->branchtransfer_id, 'Koha::Item->get_transfers returns the other transfers oldest to newest');
784
785
    $transfer_1->datecancelled(\'NOW()')->store;
786
    $transfers = $item->get_transfers();
787
    is($transfers->count, 1, 'Once a transfer is cancelled, it no longer appears in the list from ->get_transfers()');
788
    $result_1 = $transfers->next;
789
    is( $result_1->branchtransfer_id, $transfer_3->branchtransfer_id, 'Koha::Item->get_transfers returns the only transfer that remains');
790
    
791
    $schema->storage->txn_rollback;
792
};

Return to bug 27281