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

(-)a/t/db_dependent/Circulation.t (-2 / +96 lines)
Lines 30-36 use Koha::Database; Link Here
30
30
31
use t::lib::TestBuilder;
31
use t::lib::TestBuilder;
32
32
33
use Test::More tests => 84;
33
use Test::More tests => 85;
34
34
35
BEGIN {
35
BEGIN {
36
    use_ok('C4::Circulation');
36
    use_ok('C4::Circulation');
Lines 908-911 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
908
    is( Koha::Account::Lines->search({ issue_id => $issue->id })->count, 1, 'UpdateFine should not create a new accountline when updating an existing fine');
908
    is( Koha::Account::Lines->search({ issue_id => $issue->id })->count, 1, 'UpdateFine should not create a new accountline when updating an existing fine');
909
}
909
}
910
910
911
subtest 'CanBookBeIssued & AllowReturnToBranch' => sub {
912
    plan tests => 23;
913
914
    my $homebranch    = $builder->build( { source => 'Branch' } );
915
    my $holdingbranch = $builder->build( { source => 'Branch' } );
916
    my $otherbranch   = $builder->build( { source => 'Branch' } );
917
    my $patron_1      = $builder->build( { source => 'Borrower' } );
918
    my $patron_2      = $builder->build( { source => 'Borrower' } );
919
920
    my $biblioitem = $builder->build( { source => 'Biblioitem' } );
921
    my $item = $builder->build(
922
        {   source => 'Item',
923
            value  => {
924
                homebranch    => $homebranch->{branchcode},
925
                holdingbranch => $holdingbranch->{branchcode},
926
                notforloan    => 0,
927
                itemlost      => 0,
928
                withdrawn     => 0,
929
                biblionumber  => $biblioitem->{biblionumber}
930
            }
931
        }
932
    );
933
934
    set_userenv($holdingbranch);
935
936
    my $issue = AddIssue( $patron_1, $item->{barcode} );
937
    is( ref($issue), 'Koha::Schema::Result::Issue' );    # FIXME Should be Koha::Issue
938
939
    my ( $error, $question, $alerts );
940
941
    # AllowReturnToBranch == anywhere
942
    t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'anywhere' );
943
    ## Can be issued from homebranch
944
    set_userenv($homebranch);
945
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
946
    is( keys(%$error) + keys(%$alerts),        0 );
947
    is( exists $question->{ISSUED_TO_ANOTHER}, 1 );
948
    ## Can be issued from holdingbranch
949
    set_userenv($holdingbranch);
950
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
951
    is( keys(%$error) + keys(%$alerts),        0 );
952
    is( exists $question->{ISSUED_TO_ANOTHER}, 1 );
953
    ## Can be issued from another branch
954
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
955
    is( keys(%$error) + keys(%$alerts),        0 );
956
    is( exists $question->{ISSUED_TO_ANOTHER}, 1 );
957
958
    # AllowReturnToBranch == holdingbranch
959
    t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'holdingbranch' );
960
    ## Cannot be issued from homebranch
961
    set_userenv($homebranch);
962
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
963
    is( keys(%$question) + keys(%$alerts),  0 );
964
    is( exists $error->{RETURN_IMPOSSIBLE}, 1 );
965
    is( $error->{branch_to_return},         $holdingbranch->{branchcode} );
966
    ## Can be issued from holdinbranch
967
    set_userenv($holdingbranch);
968
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
969
    is( keys(%$error) + keys(%$alerts),        0 );
970
    is( exists $question->{ISSUED_TO_ANOTHER}, 1 );
971
    ## Cannot be issued from another branch
972
    set_userenv($otherbranch);
973
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
974
    is( keys(%$question) + keys(%$alerts),  0 );
975
    is( exists $error->{RETURN_IMPOSSIBLE}, 1 );
976
    is( $error->{branch_to_return},         $holdingbranch->{branchcode} );
977
978
    # AllowReturnToBranch == homebranch
979
    t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'homebranch' );
980
    ## Can be issued from holdinbranch
981
    set_userenv($homebranch);
982
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
983
    is( keys(%$error) + keys(%$alerts),        0 );
984
    is( exists $question->{ISSUED_TO_ANOTHER}, 1 );
985
    ## Cannot be issued from holdinbranch
986
    set_userenv($holdingbranch);
987
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
988
    is( keys(%$question) + keys(%$alerts),  0 );
989
    is( exists $error->{RETURN_IMPOSSIBLE}, 1 );
990
    is( $error->{branch_to_return},         $homebranch->{branchcode} );
991
    ## Cannot be issued from holdinbranch
992
    set_userenv($otherbranch);
993
    ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
994
    is( keys(%$question) + keys(%$alerts),  0 );
995
    is( exists $error->{RETURN_IMPOSSIBLE}, 1 );
996
    is( $error->{branch_to_return},         $homebranch->{branchcode} );
997
998
    # TODO t::lib::Mocks::mock_preference('AllowReturnToBranch', 'homeorholdingbranch');
999
};
1000
1001
sub set_userenv {
1002
    my ( $library ) = @_;
1003
    C4::Context->set_userenv(0,0,0,'firstname','surname', $library->{branchcode}, $library->{branchname}, '', '', '');
1004
}
1005
911
1;
1006
1;
912
- 

Return to bug 16534