Bug 10274: UT: Acquisition.t needs to create its own data
[koha.git] / t / db_dependent / Acquisition.t
1 #!/usr/bin/perl
2 #
3 # This Koha test module is a stub!
4 # Add more tests here!!!
5
6 use Modern::Perl;
7 use POSIX qw(strftime);
8
9 use C4::Bookseller qw( GetBookSellerFromId );
10
11 use Test::More tests => 40;
12
13 BEGIN {
14     use_ok('C4::Acquisition');
15     use_ok('C4::Bookseller');
16     use_ok('C4::Biblio');
17     use_ok('C4::Budgets');
18     use_ok('C4::Bookseller');
19 }
20
21 my $booksellerid = C4::Bookseller::AddBookseller(
22     {
23         name => "my vendor",
24         address1 => "bookseller's address",
25         phone => "0123456",
26         active => 1
27     }
28 );
29
30 my $booksellerinfo = C4::Bookseller::GetBookSellerFromId( $booksellerid );
31
32 my ($basket, $basketno);
33 ok($basketno = NewBasket($booksellerid, 1), "NewBasket(  $booksellerid , 1  ) returns $basketno");
34 ok($basket   = GetBasket($basketno), "GetBasket($basketno) returns $basket");
35
36 my $budgetid = C4::Budgets::AddBudget(
37     {
38         budget_code => "budget_code_test_getordersbybib",
39         budget_name => "budget_name_test_getordersbybib",
40     }
41 );
42 my $budget = C4::Budgets::GetBudget( $budgetid );
43
44 my ($ordernumber1, $ordernumber2, $ordernumber3);
45 my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, '');
46 my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
47 ( undef, $ordernumber1 ) = C4::Acquisition::NewOrder(
48     {
49         basketno => $basketno,
50         quantity => 24,
51         biblionumber => $biblionumber1,
52         budget_id => $budget->{budget_id},
53     }
54 );
55
56 ( undef, $ordernumber2 ) = C4::Acquisition::NewOrder(
57     {
58         basketno => $basketno,
59         quantity => 42,
60         biblionumber => $biblionumber2,
61         budget_id => $budget->{budget_id},
62     }
63 );
64
65 ( undef, $ordernumber3 ) = C4::Acquisition::NewOrder(
66     {
67         basketno => $basketno,
68         quantity => 4,
69         biblionumber => $biblionumber2,
70         budget_id => $budget->{budget_id},
71         ecost => 42,
72         rrp => 42,
73     }
74 );
75
76 my $grouped    = 0;
77 my $orders = GetPendingOrders( $booksellerid, $grouped );
78 isa_ok( $orders, 'ARRAY' );
79
80 C4::Acquisition::CloseBasket( $basketno );
81 my @lateorders = GetLateOrders(0);
82 my $order = $lateorders[0];
83 AddClaim( $order->{ordernumber} );
84 my $neworder = GetOrder( $order->{ordernumber} );
85 is( $neworder->{claimed_date}, strftime( "%Y-%m-%d", localtime(time) ), "AddClaim : Check claimed_date" );
86
87 my @expectedfields = qw( basketno
88                          biblionumber
89                          invoiceid
90                          budgetdate
91                          cancelledby
92                          closedate
93                          creationdate
94                          currency
95                          datecancellationprinted
96                          datereceived
97                          ecost
98                          entrydate
99                          firstname
100                          freight
101                          gstrate
102                          listprice
103                          notes
104                          ordernumber
105                          purchaseordernumber
106                          quantity
107                          quantityreceived
108                          rrp
109                          sort1
110                          sort2
111                          subscriptionid
112                          supplierreference
113                          surname
114                          timestamp
115                          title
116                          totalamount
117                          unitprice );
118 my $firstorder = $orders->[0];
119 for my $field ( @expectedfields ) {
120     ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
121 }
122
123 END {
124     C4::Acquisition::DelOrder( $biblionumber1, $ordernumber1 );
125     C4::Acquisition::DelOrder( $biblionumber2, $ordernumber2 );
126     C4::Acquisition::DelOrder( $biblionumber2, $ordernumber3 );
127     C4::Budgets::DelBudget( $budgetid );
128     C4::Acquisition::DelBasket( $basketno );
129     C4::Bookseller::DelBookseller( $booksellerid );
130     C4::Biblio::DelBiblio($biblionumber1);
131     C4::Biblio::DelBiblio($biblionumber2);
132 };