3 # Some tests for SIP::ILS::Patron
4 # This needs to be extended! Your help is appreciated..
7 use Test
::More tests
=> 3;
10 use t
::lib
::TestBuilder
;
12 use C4
::SIP
::ILS
::Patron
;
14 my $schema = Koha
::Database
->new->schema;
15 $schema->storage->txn_begin;
17 my $builder = t
::lib
::TestBuilder
->new();
18 my $patron1 = $builder->build({ source
=> 'Borrower' });
19 my $card = $patron1->{cardnumber
};
21 # Check existing card number
22 my $sip_patron = C4
::SIP
::ILS
::Patron
->new( $card );
23 is
( defined $sip_patron, 1, "Patron is valid" );
25 # Check invalid cardnumber by deleting patron
26 $schema->resultset('Borrower')->search({ cardnumber
=> $card })->delete;
27 my $sip_patron2 = C4
::SIP
::ILS
::Patron
->new( $card );
28 is
( $sip_patron2, undef, "Patron is not valid (anymore)" );
30 subtest
"OverduesBlockCirc tests" => sub {
34 my $odue_patron = $builder->build({ source
=> 'Borrower' });
35 my $good_patron = $builder->build({ source
=> 'Borrower' });
36 my $odue = $builder->build({ source
=> 'Issue', value
=> {
37 borrowernumber
=> $odue_patron->{borrowernumber
},
38 date_due
=> '2017-01-01',
41 t
::lib
::Mocks
::mock_preference
( 'OverduesBlockCirc', 'noblock' );
42 my $odue_sip_patron = C4
::SIP
::ILS
::Patron
->new( $odue_patron->{cardnumber
} );
43 is
( $odue_sip_patron->{charge_ok
}, 1, "Not blocked with overdues when set to 'Don't block'");
44 $odue_sip_patron = C4
::SIP
::ILS
::Patron
->new( $good_patron->{cardnumber
} );
45 is
( $odue_sip_patron->{charge_ok
}, 1, "Not blocked without overdues when set to 'Don't block'");
47 t
::lib
::Mocks
::mock_preference
( 'OverduesBlockCirc', 'confirmation' );
48 $odue_sip_patron = C4
::SIP
::ILS
::Patron
->new( $odue_patron->{cardnumber
} );
49 is
( $odue_sip_patron->{charge_ok
}, '', "Blocked with overdues when set to 'Ask for confirmation'");
50 $odue_sip_patron = C4
::SIP
::ILS
::Patron
->new( $good_patron->{cardnumber
} );
51 is
( $odue_sip_patron->{charge_ok
}, 1, "Not blocked without overdues when set to 'confirmation'");
53 t
::lib
::Mocks
::mock_preference
( 'OverduesBlockCirc', 'block' );
54 $odue_sip_patron = C4
::SIP
::ILS
::Patron
->new( $odue_patron->{cardnumber
} );
55 is
( $odue_sip_patron->{charge_ok
}, '', "Blocked with overdues when set to 'Block'");
56 $odue_sip_patron = C4
::SIP
::ILS
::Patron
->new( $good_patron->{cardnumber
} );
57 is
( $odue_sip_patron->{charge_ok
}, 1, "Not blocked without overdues when set to 'Block'");
61 $schema->storage->txn_rollback;