From a6d9026f23dc2eb95188907dfc14f574c2305215 Mon Sep 17 00:00:00 2001 From: Kenza Zaki Date: Mon, 12 Aug 2013 14:16:46 +0200 Subject: [PATCH] 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 Signed-off-by: Katrin Fischer Signed-off-by: Galen Charlton (cherry picked from commit 87890bc366d566685f1484cb476200f5ca302e91) Signed-off-by: Tomas Cohen Arazi --- t/db_dependent/Circulation_OfflineOperation.t | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 t/db_dependent/Circulation_OfflineOperation.t diff --git a/t/db_dependent/Circulation_OfflineOperation.t b/t/db_dependent/Circulation_OfflineOperation.t new file mode 100644 index 0000000000..46ecb3b433 --- /dev/null +++ b/t/db_dependent/Circulation_OfflineOperation.t @@ -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; -- 2.39.5