use Modern::Perl;
use C4::Context;
-use Test::More tests => 47;
+use Test::More tests => 50;
use Test::MockModule;
-use_ok('C4::Acquisition');
-
my $module = new Test::MockModule('C4::Context');
$module->mock('_new_dbh', sub {
my $dbh = DBI->connect( 'DBI:Mock:', '', '' )
my $dbh = C4::Context->dbh;
+use_ok('C4::Acquisition');
+
# We need to add a resultset to avoid DBI fail
# ("DBI bind_columns: invalid number of arguments...")
my $rs = [
);
my $history = $dbh->{mock_all_history};
-is(scalar(@$history), 1);
-my @bound_params = @{ $history->[0]->{bound_params} };
-is(scalar(@bound_params), 15);
+ok(scalar(@$history) > 0);
+my @bound_params = @{ $history->[-1]->{bound_params} };
+is(scalar(@bound_params), 16);
is($bound_params[0], 'supplierid');
is($bound_params[1], '%invoicenumber%');
is($bound_params[2], '%suppliername%');
is($bound_params[11], 'author');
is($bound_params[12], 'publisher');
is($bound_params[13], 'publicationyear');
-is($bound_params[14], 'branchcode');
+is($bound_params[14], 'publicationyear');
+is($bound_params[15], 'branchcode');
$dbh->{mock_clear_history} = 1;
$dbh->{mock_add_resultset} = $rs;
@bound_params = @{ $history->[0]->{bound_params} };
is(scalar(@bound_params), 1);
is($bound_params[0], 42);
+my $checkordersrs = [
+ [qw(COUNT)],
+ [2]
+];
+
+$dbh->{mock_add_resultset} = $checkordersrs;
+is(DelInvoice(42), undef, "Invoices with items don't get deleted");
+
+$checkordersrs = [
+ [qw(COUNT)],
+ [0]
+];
+
+my $deleters = [
+ [qw(COUNT)],
+ [1]
+];
+
+$dbh->{mock_add_resultset} = $checkordersrs;
+$dbh->{mock_add_resultset} = $deleters;
+ok(DelInvoice(42), "Invoices without items do get deleted");