Bug 10270: GetOrdersByBiblionumber needs better unit tests
[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 strict;
7 use warnings;
8 use Data::Dumper;
9 use POSIX qw(strftime);
10
11 use C4::Bookseller qw( GetBookSellerFromId );
12
13 use Test::More tests => 37;
14
15 BEGIN {
16     use_ok('C4::Acquisition');
17 }
18
19 my $booksellerid = 1;
20 my $booksellerinfo = GetBookSellerFromId( $booksellerid );
21 # diag( Data::Dumper->Dump( [ $booksellerinfo ], [ 'booksellerinfo' ] ) );
22 SKIP: {
23     skip 'No booksellers in database, cannot test baskets', 2 unless $booksellerinfo;
24     my ($basket, $basketno);
25     ok($basketno = NewBasket(1,1),                      "NewBasket(  1 , 1  ) returns $basketno");
26     ok($basket   = GetBasket($basketno),        "GetBasket($basketno) returns $basket");
27 }
28
29
30 my $supplierid = 1;
31 my $grouped    = 0;
32 my $orders = GetPendingOrders( $supplierid, $grouped );
33 isa_ok( $orders, 'ARRAY' );
34
35 my @lateorders = GetLateOrders(0);
36 SKIP: {
37    skip 'No Late Orders, cannot test AddClaim', 1 unless @lateorders;
38    my $order = $lateorders[0];
39    AddClaim( $order->{ordernumber} );
40    my $neworder = GetOrder( $order->{ordernumber} );
41    is( $neworder->{claimed_date}, strftime( "%Y-%m-%d", localtime(time) ), "AddClaim : Check claimed_date" );
42 }
43
44 SKIP: {
45     skip 'No relevant orders in database, cannot test baskets', 33 unless( scalar @$orders );
46     # diag( Data::Dumper->Dump( [ $orders ], [ 'orders' ] ) );
47     my @expectedfields = qw( basketno
48                              biblioitemnumber
49                              biblionumber
50                              invoiceid
51                              budgetdate
52                              cancelledby
53                              closedate
54                              creationdate
55                              currency
56                              datecancellationprinted
57                              datereceived
58                              ecost
59                              entrydate
60                              firstname
61                              freight
62                              gstrate
63                              listprice
64                              notes
65                              ordernumber
66                              purchaseordernumber
67                              quantity
68                              quantityreceived
69                              rrp
70                              sort1
71                              sort2
72                              subscriptionid
73                              supplierreference
74                              surname
75                              timestamp
76                              title
77                              totalamount
78                              unitprice );
79     my $firstorder = $orders->[0];
80     for my $field ( @expectedfields ) {
81         ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
82     }
83 }