From cb00ed5d64b5405c78dc0a85609d198da38f2777 Mon Sep 17 00:00:00 2001
From: Josef Moravec <josef.moravec@gmail.com>
Date: Tue, 1 Nov 2016 07:41:30 +0000
Subject: [PATCH] Bug 8612: Add tests for GetBasketAsCSV

---
 t/db_dependent/Acquisition/GetBasketAsCSV.t | 76 +++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)
 create mode 100644 t/db_dependent/Acquisition/GetBasketAsCSV.t

diff --git a/t/db_dependent/Acquisition/GetBasketAsCSV.t b/t/db_dependent/Acquisition/GetBasketAsCSV.t
new file mode 100644
index 0000000..320bcca
--- /dev/null
+++ b/t/db_dependent/Acquisition/GetBasketAsCSV.t
@@ -0,0 +1,76 @@
+#!/usr/bin/perl
+
+use Modern::Perl;
+
+use CGI;
+
+use Test::More tests => 2;
+
+use C4::Acquisition;
+use C4::Biblio;
+use C4::Bookseller;
+use Koha::Database;
+use Koha::CsvProfile;
+
+use Koha::Acquisition::Order;
+
+my $schema = Koha::Database->new()->schema();
+$schema->storage->txn_begin();
+
+my $dbh = C4::Context->dbh;
+$dbh->{RaiseError} = 1;
+
+my $query = CGI->new();
+
+my $vendor_id = C4::Bookseller::AddBookseller({
+    name => 'my vendor',
+    address1 => 'vendor address',
+    active => 1,
+    deliverytime => 5,
+});
+my $budget_id = C4::Budgets::AddBudget({
+    budget_code => 'my_budget_code',
+    budget_name => 'My budget name',
+});
+my $budget = C4::Budgets::GetBudget( $budget_id );
+
+my $csv_profile = Koha::CsvProfile->new({
+    profile => 'my user profile',
+    type => 'sql',
+    csv_separator => ',',
+    content => 'autor=biblio.author|title=biblio.title|quantity=aqorders.quantity',
+})->store;
+
+my $basketno;
+$basketno = NewBasket($vendor_id, 1);
+
+my $biblio = MARC::Record->new();
+$biblio->append_fields(
+    MARC::Field->new( '100', ' ', ' ', a => 'King, Stephen' ),
+    MARC::Field->new( '245', ' ', ' ', a => 'Test Record' ),
+);
+my ($biblionumber, $biblioitemnumber) = AddBiblio($biblio, '');
+
+my $order = Koha::Acquisition::Order->new({
+    basketno => $basketno,
+    quantity => 3,
+    biblionumber => $biblionumber,
+    budget_id => $budget_id,
+    entrydate => '2016-01-02',
+})->insert;
+
+# Use user CSV profile
+my $basket_csv1 = C4::Acquisition::GetBasketAsCSV($basketno, $query, $csv_profile->export_format_id);
+is($basket_csv1, 'autor,title,quantity
+"King, Stephen","Test Record",3
+', 'CSV should be generated with user profile');
+
+# Use defautl template
+my $basket_csv2 = C4::Acquisition::GetBasketAsCSV($basketno, $query);
+is($basket_csv2, 'Contract name,Order number,Entry date,ISBN,Author,Title,Publication year,Publisher,Collection title,Note for vendor,Quantity,RRP,Delivery place,Billing place
+
+"",' . $order->{ordernumber}  . ',2016-01-02,,"King, Stephen","Test Record",,"","","",3,,"",""
+
+', 'CSV should be generated with default template');
+
+$schema->storage->txn_rollback();
-- 
2.1.4