Bug 5349: Add unit tests for TransferOrder
authorJulian Maurice <julian.maurice@biblibre.com>
Thu, 13 Jun 2013 12:44:11 +0000 (12:44 +0000)
committerGalen Charlton <gmc@esilibrary.com>
Sun, 8 Sep 2013 22:38:28 +0000 (22:38 +0000)
Signed-off-by: sonia <koha@univ-lyon3.fr>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signing off on this because a following patch fixes the test to use
transactions

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
t/db_dependent/Acquisition/TransferOrder.t [new file with mode: 0644]

diff --git a/t/db_dependent/Acquisition/TransferOrder.t b/t/db_dependent/Acquisition/TransferOrder.t
new file mode 100644 (file)
index 0000000..fd294e2
--- /dev/null
@@ -0,0 +1,86 @@
+#!/usr/bin/perl
+
+use Modern::Perl;
+
+use Test::More;
+use C4::Acquisition;
+use C4::Biblio;
+use C4::Items;
+use C4::Bookseller;
+use C4::Budgets;
+use MARC::Record;
+
+my $booksellerid1 = C4::Bookseller::AddBookseller(
+    {
+        name => "my vendor 1",
+        address1 => "bookseller's address",
+        phone => "0123456",
+        active => 1
+    }
+);
+
+my $basketno1 = C4::Acquisition::NewBasket(
+    $booksellerid1
+);
+
+my $booksellerid2 = C4::Bookseller::AddBookseller(
+    {
+        name => "my vendor 2",
+        address1 => "bookseller's address",
+        phone => "0123456",
+        active => 1
+    }
+);
+
+my $basketno2 = C4::Acquisition::NewBasket(
+    $booksellerid2
+);
+
+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);
+
+my ( undef, $ordernumber ) = C4::Acquisition::NewOrder(
+    {
+        basketno => $basketno1,
+        quantity => 24,
+        biblionumber => $biblionumber,
+        budget_id => $budget->{budget_id},
+    }
+);
+NewOrderItem($itemnumber, $ordernumber);
+
+# Begin tests
+my $order;
+is(scalar GetOrders($basketno1), 1, "1 order in basket1");
+($order) = GetOrders($basketno1);
+is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 1, "1 item in basket1's order");
+is(scalar GetOrders($basketno2), 0, "0 order in basket2");
+
+diag("Transfering order to basket2");
+my $newordernumber = TransferOrder($ordernumber, $basketno2);
+is(scalar GetOrders($basketno1), 0, "0 order in basket1");
+is(scalar GetOrders($basketno2), 1, "1 order in basket2");
+($order) = GetOrders($basketno2);
+is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 1, "1 item in basket2's order");
+
+END {
+    C4::Acquisition::DelOrder( $biblionumber, $ordernumber );
+    C4::Acquisition::DelOrder( $biblionumber, $newordernumber );
+    C4::Budgets::DelBudget( $budgetid );
+    C4::Acquisition::DelBasket( $basketno1 );
+    C4::Bookseller::DelBookseller( $booksellerid1 );
+    C4::Acquisition::DelBasket( $basketno2 );
+    C4::Bookseller::DelBookseller( $booksellerid2 );
+    C4::Biblio::DelBiblio($biblionumber);
+};
+
+done_testing;