1 package KohaTest::Circulation::MarkIssueReturned;
2 use base qw(KohaTest::Circulation);
11 basic usage of C4::Circulation::MarkIssueReturned
15 sub basic_usage : Test( 4 ) {
18 my $before_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} );
19 ok( ! defined $before_issues->{'borrowernumber'}, 'our item is not checked out' )
20 or diag( Data::Dumper->Dump( [ $before_issues ], [ 'before_issues' ] ) );
22 my $datedue = $self->checkout_first_item();
23 ok( $datedue, "Now it is checked out and due on $datedue" );
25 my $after_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} );
26 is( $after_issues->{'borrowernumber'}, $self->{'memberid'}, 'Our item is checked out to our borrower' )
27 or diag( Data::Dumper->Dump( [ $after_issues ], [ 'after_issues' ] ) );
29 C4::Circulation::MarkIssueReturned( $self->{'memberid'}, $self->{'items'}[0]{'itemnumber'} );
31 my $after_return = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} );
32 ok( ! defined $after_return->{'borrowernumber'}, 'The item is no longer checked out' )
33 or diag( Data::Dumper->Dump( [ $after_return ], [ 'after_return' ] ) );
39 check an item out, then, check it back in, specifying the returndate.
41 verify that it's checked back in and the returndate is correct.
45 sub set_retundate : Test( 7 ) {
48 # It's not checked out to start with
49 my $before_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} );
50 ok( ! defined $before_issues->{'borrowernumber'}, 'our item is not checked out' )
51 or diag( Data::Dumper->Dump( [ $before_issues ], [ 'before_issues' ] ) );
54 my $datedue = $self->checkout_first_item();
55 ok( $datedue, "Now it is checked out and due on $datedue" );
57 # verify that it has been checked out
58 my $after_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} );
59 is( $after_issues->{'borrowernumber'}, $self->{'memberid'}, 'Our item is checked out to our borrower' )
60 or diag( Data::Dumper->Dump( [ $after_issues ], [ 'after_issues' ] ) );
62 # mark it as returned on some date
63 my $returndate = $self->random_date();
64 ok( $returndate, "return this item on $returndate" );
66 C4::Circulation::MarkIssueReturned( $self->{'memberid'},
67 $self->{'items'}[0]{'itemnumber'},
71 # validate that it is no longer checked out.
72 my $after_return = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} );
73 ok( ! defined $after_return->{'borrowernumber'}, 'The item is no longer checked out' )
74 or diag( Data::Dumper->Dump( [ $after_return ], [ 'after_return' ] ) );
76 # grab the history for this item and make sure it looks right
77 my $history = C4::Circulation::GetItemIssues( $self->{'items'}[0]{'itemnumber'}, 1 );
78 is( scalar @$history, 1, 'this item has been checked out one time.' )
79 or diag( Data::Dumper->Dump( [ $history ], [ 'history' ] ) );
80 is( $history->[0]{'returndate'}, $returndate, "...and it was returned on $returndate" );