From e0cf9f7d50aa4b7106c62d0cf7ab2cf73e64ea5e Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@biblibre.com>
Date: Wed, 19 Feb 2014 13:37:40 +0100
Subject: [PATCH] Bug 11744: Add regression tests

Before the patch:
 prove t/db_dependent/Acquisition/CancelReceipt.t
returns 1 failure.
After the patch, the 2 tests pass.
---
 t/db_dependent/Acquisition/CancelReceipt.t |   84 ++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 t/db_dependent/Acquisition/CancelReceipt.t

diff --git a/t/db_dependent/Acquisition/CancelReceipt.t b/t/db_dependent/Acquisition/CancelReceipt.t
new file mode 100644
index 0000000..5d0ce5e
--- /dev/null
+++ b/t/db_dependent/Acquisition/CancelReceipt.t
@@ -0,0 +1,84 @@
+#!/usr/bin/perl
+
+use Modern::Perl;
+
+use Test::More tests => 2;
+use C4::Context;
+use C4::Acquisition;
+use C4::Biblio;
+use C4::Items;
+use C4::Bookseller;
+use C4::Budgets;
+use t::lib::Mocks;
+
+use Koha::DateUtils;
+use MARC::Record;
+
+my $dbh = C4::Context->dbh;
+$dbh->{RaiseError} = 1;
+$dbh->{AutoCommit} = 0;
+
+my $booksellerid1 = C4::Bookseller::AddBookseller(
+    {
+        name => "my vendor 1",
+        address1 => "bookseller's address",
+        phone => "0123456",
+        active => 1
+    }
+);
+
+my $basketno1 = C4::Acquisition::NewBasket(
+    $booksellerid1
+);
+
+my $budgetid = C4::Budgets::AddBudget(
+    {
+        budget_code => "budget_code_test_transferorder",
+        budget_name => "budget_name_test_transferorder",
+    }
+);
+
+my $budget = C4::Budgets::GetBudget( $budgetid );
+
+my ($biblionumber, $biblioitemnumber) = AddBiblio(MARC::Record->new, '');
+my $itemnumber = AddItem({}, $biblionumber);
+
+t::lib::Mocks::mock_preference('AcqCreateItem', 'receiving');
+my ( undef, $ordernumber ) = C4::Acquisition::NewOrder(
+    {
+        basketno => $basketno1,
+        quantity => 2,
+        biblionumber => $biblionumber,
+        budget_id => $budget->{budget_id},
+    }
+);
+
+ModReceiveOrder( $biblionumber, $ordernumber, 2, undef, undef, undef, undef, undef, undef, dt_from_string );
+
+NewOrderItem($itemnumber, $ordernumber);
+
+CancelReceipt($ordernumber);
+
+my $order = GetOrder( $ordernumber );
+is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 0, "Create items on receiving: 0 item exist after cancelling a receipt");
+
+t::lib::Mocks::mock_preference('AcqCreateItem', 'ordering');
+( undef, $ordernumber ) = C4::Acquisition::NewOrder(
+    {
+        basketno => $basketno1,
+        quantity => 2,
+        biblionumber => $biblionumber,
+        budget_id => $budget->{budget_id},
+    }
+);
+
+ModReceiveOrder( $biblionumber, $ordernumber, 2, undef, undef, undef, undef, undef, undef, dt_from_string );
+
+NewOrderItem($itemnumber, $ordernumber);
+
+CancelReceipt($ordernumber);
+
+$order = GetOrder( $ordernumber );
+is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 1, "Create items on ordering: items are not deleted after cancelling a receipt");
+
+$dbh->rollback;
-- 
1.7.10.4