9 use Test::More tests => 18;
13 use lib $FindBin::Bin;
14 use_ok('Koha::Borrower::Debarments');
17 # Get a borrower with no current debarments
18 my $dbh = C4::Context->dbh;
20 SELECT b.borrowernumber FROM borrowers b
21 LEFT JOIN borrower_debarments bd ON ( b.borrowernumber = bd.borrowernumber )
22 WHERE b.debarred IS NULL AND b.debarredcomment IS NULL AND bd.borrowernumber IS NULL
25 my $sth = $dbh->prepare($query);
27 my ($borrowernumber) = $sth->fetchrow_array();
28 diag("Using borrowernumber: $borrowernumber");
31 my $success = AddDebarment({
32 borrowernumber => $borrowernumber,
33 expiration => '9999-06-10',
37 ok( $success, "AddDebarment returned true" );
40 my $debarments = GetDebarments({ borrowernumber => $borrowernumber });
41 ok( @$debarments == 1, "GetDebarments returns 1 debarment" );
42 ok( $debarments->[0]->{'type'} eq 'MANUAL', "Correctly stored 'type'" );
43 ok( $debarments->[0]->{'expiration'} eq '9999-06-10', "Correctly stored 'expiration'" );
44 ok( $debarments->[0]->{'comment'} eq 'Test 1', "Correctly stored 'comment'" );
47 $success = AddDebarment({
48 borrowernumber => $borrowernumber,
52 $debarments = GetDebarments({ borrowernumber => $borrowernumber });
53 ok( @$debarments == 2, "GetDebarments returns 2 debarments" );
54 ok( $debarments->[1]->{'type'} eq 'MANUAL', "Correctly stored 'type'" );
55 ok( !$debarments->[1]->{'expiration'}, "Correctly stored debarrment with no expiration" );
56 ok( $debarments->[1]->{'comment'} eq 'Test 2', "Correctly stored 'comment'" );
60 borrower_debarment_id => $debarments->[1]->{'borrower_debarment_id'},
62 expiration => '9998-06-10',
64 $debarments = GetDebarments({ borrowernumber => $borrowernumber });
65 ok( $debarments->[1]->{'comment'} eq 'Test 3', "ModDebarment functions correctly" );
68 my $borrower = GetMember( borrowernumber => $borrowernumber );
69 ok( $borrower->{'debarred'} eq '9999-06-10', "Field borrowers.debarred set correctly" );
70 ok( $borrower->{'debarredcomment'} eq "Test 1\nTest 3", "Field borrowers.debarredcomment set correctly" );
74 borrowernumber => $borrowernumber,
77 $debarments = GetDebarments({
78 borrowernumber => $borrowernumber,
81 ok( @$debarments == 1, "GetDebarments returns 1 OVERDUES debarment" );
82 ok( $debarments->[0]->{'type'} eq 'OVERDUES', "AddOverduesDebarment created new debarment correctly" );
85 borrowernumber => $borrowernumber,
86 expiration => '9999-11-09',
89 $debarments = GetDebarments({
90 borrowernumber => $borrowernumber,
93 ok( @$debarments == 1, "GetDebarments returns 1 OVERDUES debarment after running AddOverduesDebarment twice" );
94 ok( $debarments->[0]->{'expiration'} eq '9999-11-09', "AddOverduesDebarment updated OVERDUES debarment correctly" );
97 $debarments = GetDebarments({ borrowernumber => $borrowernumber });
98 foreach my $d ( @$debarments ) {
99 DelDebarment( $d->{'borrower_debarment_id'} );
101 $debarments = GetDebarments({ borrowernumber => $borrowernumber });
102 ok( @$debarments == 0, "DelDebarment functions correctly" )