Bug 10710: add unit tests for OfflineOperation's routines in C4/Circulation.pm
This patch test AddOfflineOperation,GetOfflineOperation and DeleteOfflineOperation in C4/Circulation.pm. The tests are wrapped in a transaction. Note: Currently, GetOfflineOperations is not tested because we cannot mock C4::Context->userenv in unit tests To test: prove t/db_dependent/Circulation_OfflineOperation.t t/db_dependent/Circulation_OfflineOperation.t .. ok All tests successful. Files=1, Tests=7, 19 wallclock secs ( 0.01 usr 0.01 sys + 0.33 cusr 0.02 csys = 0.37 CPU Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
parent
c191532cc0
commit
87890bc366
1 changed files with 96 additions and 0 deletions
96
t/db_dependent/Circulation_OfflineOperation.t
Normal file
96
t/db_dependent/Circulation_OfflineOperation.t
Normal file
|
@ -0,0 +1,96 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use Modern::Perl;
|
||||
use C4::Branch;
|
||||
use C4::Circulation;
|
||||
|
||||
use Test::More tests => 7;
|
||||
|
||||
BEGIN {
|
||||
use_ok('C4::Circulation');
|
||||
}
|
||||
can_ok(
|
||||
'C4::Circulation',
|
||||
qw(
|
||||
AddOfflineOperation
|
||||
GetOfflineOperation
|
||||
GetOfflineOperations
|
||||
DeleteOfflineOperation
|
||||
)
|
||||
);
|
||||
|
||||
#Start transaction
|
||||
my $dbh = C4::Context->dbh;
|
||||
$dbh->{RaiseError} = 1;
|
||||
$dbh->{AutoCommit} = 0;
|
||||
|
||||
$dbh->do(q|DELETE FROM issues|);
|
||||
$dbh->do(q|DELETE FROM borrowers|);
|
||||
$dbh->do(q|DELETE FROM items|);
|
||||
$dbh->do(q|DELETE FROM branches|);
|
||||
$dbh->do(q|DELETE FROM pending_offline_operations|);
|
||||
|
||||
#Add branch
|
||||
my $samplebranch1 = {
|
||||
add => 1,
|
||||
branchcode => 'SAB1',
|
||||
branchname => 'Sample Branch',
|
||||
branchaddress1 => 'sample adr1',
|
||||
branchaddress2 => 'sample adr2',
|
||||
branchaddress3 => 'sample adr3',
|
||||
branchzip => 'sample zip',
|
||||
branchcity => 'sample city',
|
||||
branchstate => 'sample state',
|
||||
branchcountry => 'sample country',
|
||||
branchphone => 'sample phone',
|
||||
branchfax => 'sample fax',
|
||||
branchemail => 'sample email',
|
||||
branchurl => 'sample url',
|
||||
branchip => 'sample ip',
|
||||
branchprinter => undef,
|
||||
opac_info => 'sample opac',
|
||||
};
|
||||
ModBranch($samplebranch1);
|
||||
|
||||
#Begin Tests
|
||||
#Test AddOfflineOperation
|
||||
is(
|
||||
AddOfflineOperation(
|
||||
'User1', $samplebranch1->{branchcode},
|
||||
'null', 'Action1', 'CODE', 'Cardnumber1', 10
|
||||
),
|
||||
'Added.',
|
||||
"OfflineOperation has been added"
|
||||
);
|
||||
my $offline_id =
|
||||
$dbh->last_insert_id( undef, undef, 'pending_offline_operations', undef );
|
||||
|
||||
#Test GetOfflineOperations
|
||||
is_deeply(
|
||||
GetOfflineOperation($offline_id),
|
||||
{
|
||||
operationid => $offline_id,
|
||||
userid => 'User1',
|
||||
branchcode => $samplebranch1->{branchcode},
|
||||
timestamp => "0000-00-00 00:00:00",
|
||||
action => 'Action1',
|
||||
barcode => 'CODE',
|
||||
cardnumber => 'Cardnumber1',
|
||||
amount => '10.000000'
|
||||
},
|
||||
"GetOffline returns offlineoperation's informations"
|
||||
);
|
||||
is(GetOfflineOperation,undef,'GetOfflineOperation without parameters returns undef');
|
||||
is(GetOfflineOperation(-1),undef,'GetOfflineOperation with wrong parameters returns undef');
|
||||
|
||||
#Test GetOfflineOperations
|
||||
#TODO later: test GetOfflineOperations
|
||||
# Actually we cannot mock C4::Context->userenv in unit tests
|
||||
|
||||
#Test DeleteOfflineOperation
|
||||
is (DeleteOfflineOperation($offline_id),'Deleted.','Offlineoperation has been deleted');
|
||||
#is (DeleteOfflineOperation, undef, 'DeleteOfflineOperation without id returns undef');
|
||||
#is (DeleteOfflineOperation(-1),undef, 'DeleteOfflineOperation with a wrong id returns undef');#FIXME
|
||||
|
||||
#End transaction
|
||||
$dbh->rollback;
|
Loading…
Reference in a new issue