Bug 17600: Standardize our EXPORT_OK
[srvgit] / t / db_dependent / Acquisition / Invoices.t
old mode 100644 (file)
new mode 100755 (executable)
index eac6a23..0327a84
@@ -1,45 +1,43 @@
 #!/usr/bin/perl
-#
-# This Koha test module is a stub!
-# Add more tests here!!!
 
-use strict;
-use warnings;
+use Modern::Perl;
 
-use C4::Bookseller qw( GetBookSellerFromId );
 use C4::Biblio qw( AddBiblio );
 
-use Koha::Acquisition::Order;
+use Koha::Acquisition::Booksellers;
+use Koha::Acquisition::Orders;
+use Koha::Database;
 
-use Test::More tests => 22;
+use Test::More tests => 24;
 
 BEGIN {
-    use_ok('C4::Acquisition');
+    use_ok('C4::Acquisition', qw( NewBasket GetBasket AddInvoice GetInvoice ModReceiveOrder GetInvoiceDetails GetInvoices ModInvoice CloseInvoice ReopenInvoice MergeInvoices DelInvoice ));
 }
 
+my $schema = Koha::Database->new()->schema();
+$schema->storage->txn_begin();
 my $dbh = C4::Context->dbh;
-$dbh->{AutoCommit} = 0;
-$dbh->{RaiseError} = 1;
 
 $dbh->do(q{DELETE FROM aqinvoices});
 
-my $booksellerid = C4::Bookseller::AddBookseller(
+my $bookseller = Koha::Acquisition::Bookseller->new(
     {
         name => "my vendor",
         address1 => "bookseller's address",
         phone => "0123456",
         active => 1
     }
-);
+)->store;
+my $booksellerid = $bookseller->id;
 
-my $booksellerinfo = GetBookSellerFromId( $booksellerid );
+my $booksellerinfo = Koha::Acquisition::Booksellers->find( $booksellerid );
 my $basketno = NewBasket($booksellerid, 1);
 my $basket   = GetBasket($basketno);
 
 my $budgetid = C4::Budgets::AddBudget(
     {
-        budget_code => "budget_code_test_getordersbybib",
-        budget_name => "budget_name_test_getordersbybib",
+        budget_code => "budget_code_test",
+        budget_name => "budget_name_test",
     }
 );
 my $budget = C4::Budgets::GetBudget( $budgetid );
@@ -62,8 +60,8 @@ my $order1 = Koha::Acquisition::Order->new(
         biblionumber => $biblionumber1,
         budget_id => $budget->{budget_id},
     }
-)->insert;
-my $ordernumber1 = $order1->{ordernumber};
+)->store;
+my $ordernumber1 = $order1->ordernumber;
 
 my $order2 = Koha::Acquisition::Order->new(
     {
@@ -72,8 +70,8 @@ my $order2 = Koha::Acquisition::Order->new(
         biblionumber => $biblionumber2,
         budget_id => $budget->{budget_id},
     }
-)->insert;
-my $ordernumber2 = $order2->{ordernumber};
+)->store;
+my $ordernumber2 = $order2->ordernumber;
 
 my $order3 = Koha::Acquisition::Order->new(
     {
@@ -84,34 +82,32 @@ my $order3 = Koha::Acquisition::Order->new(
         ecost => 42,
         rrp => 42,
     }
-)->insert;
-my $ordernumber3 = $order3->{ordernumber};
+)->store;
+my $ordernumber3 = $order3->ordernumber;
 
 my $invoiceid1 = AddInvoice(invoicenumber => 'invoice1', booksellerid => $booksellerid, unknown => "unknown");
 my $invoiceid2 = AddInvoice(invoicenumber => 'invoice2', booksellerid => $booksellerid, unknown => "unknown",
                             shipmentdate => '2012-12-24',
                            );
 
+my $invoice1 = GetInvoice( $invoiceid1 );
+my $invoice2 = GetInvoice( $invoiceid2 );
+
 my ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber1,
-        ordernumber      => $ordernumber1,
+        order            => $order1->unblessed,
         quantityreceived => 2,
-        cost             => 12,
-        ecost            => 12,
-        invoiceid        => $invoiceid1,
-        rrp              => 42
+        invoice          => $invoice1,
     }
 );
 
 ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber2,
-        ordernumber      => $ordernumber2,
+        order            => $order2->unblessed,
         quantityreceived => 1,
-        cost             => 5,
-        ecost            => 5,
-        invoiceid        => $invoiceid2,
+        invoice          => $invoice2,
         rrp              => 42
     }
 );
@@ -119,21 +115,22 @@ my ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
 ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
     {
         biblionumber     => $biblionumber3,
-        ordernumber      => $ordernumber3,
+        order            => $order3->unblessed,
         quantityreceived => 1,
-        cost             => 12,
-        ecost            => 12,
-        invoiceid        => $invoiceid2,
-        rrp              => 42
+        invoice          => $invoice2,
     }
 );
 
-my $invoice1 = GetInvoiceDetails($invoiceid1);
-my $invoice2 = GetInvoiceDetails($invoiceid2);
+$invoice1 = GetInvoiceDetails($invoiceid1);
+$invoice2 = GetInvoiceDetails($invoiceid2);
 
 is(scalar @{$invoice1->{'orders'}}, 1, 'Invoice1 has only one order');
 is(scalar @{$invoice2->{'orders'}}, 2, 'Invoice2 has only two orders');
 
+my $orders = $invoice1->{orders};
+ok( exists( @$orders[0]->{basketgroupid} ), "GetInvoiceDetails: The basketgroupid key exists" );
+ok( exists( @$orders[0]->{basketgroupname} ), "GetInvoiceDetails: The basketgroupname key exists" );
+
 my @invoices = GetInvoices();
 cmp_ok(scalar @invoices, '>=', 2, 'GetInvoices returns at least two invoices');
 
@@ -192,5 +189,5 @@ my @invoices_linked_to_subscriptions = map{
 is_deeply( \@invoices_linked_to_subscriptions, [], "GetInvoices return linked_to_subscriptions: there is no invoices linked to subscriptions yet" );
 
 END {
-    $dbh and $dbh->rollback;
+    $dbh and $schema->storage->txn_rollback();
 }