Bug 13726: Make Koha::Acq::Bookseller using Koha::Object
[koha.git] / t / db_dependent / Acquisition / GetOrdersByBiblionumber.t
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4
5 use Test::More;
6 use C4::Acquisition;
7 use C4::Biblio;
8 use C4::Budgets;
9 use Koha::Database;
10 use Koha::Acquisition::Order;
11
12 use MARC::Record;
13
14 #Start transaction
15 my $schema = Koha::Database->new()->schema();
16 $schema->storage->txn_begin();
17 my $dbh = C4::Context->dbh;
18 $dbh->{RaiseError} = 1;
19
20 my $bookseller = Koha::Acquisition::Bookseller->new(
21     {
22         name => "my vendor",
23         address1 => "bookseller's address",
24         phone => "0123456",
25         active => 1
26     }
27 )->store;
28
29 my $basketno = C4::Acquisition::NewBasket(
30     $bookseller->id
31 );
32
33 my $budgetid = C4::Budgets::AddBudget(
34     {
35         budget_code => "budget_code_test_getordersbybib",
36         budget_name => "budget_name_test_getordersbybib",
37     }
38 );
39
40 my $budget = C4::Budgets::GetBudget( $budgetid );
41
42 my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, '');
43 my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
44 my $order1 = Koha::Acquisition::Order->new(
45     {
46         basketno => $basketno,
47         quantity => 24,
48         biblionumber => $biblionumber1,
49         budget_id => $budget->{budget_id},
50     }
51 )->insert;
52 my $ordernumber1 = $order1->{ordernumber};
53
54 my $order2 = Koha::Acquisition::Order->new(
55     {
56         basketno => $basketno,
57         quantity => 42,
58         biblionumber => $biblionumber2,
59         budget_id => $budget->{budget_id},
60     }
61 )->insert;
62 my $ordernumber2 = $order1->{ordernumber};
63
64 my $order3 = Koha::Acquisition::Order->new(
65     {
66         basketno => $basketno,
67         quantity => 4,
68         biblionumber => $biblionumber2,
69         budget_id => $budget->{budget_id},
70     }
71 )->insert;
72 my $ordernumber3 = $order1->{ordernumber};
73
74 my @orders = GetOrdersByBiblionumber();
75 is(scalar(@orders), 0, 'GetOrdersByBiblionumber : no argument, return undef');
76
77 @orders = GetOrdersByBiblionumber( $biblionumber1 );
78 is(scalar(@orders), 1, '1 order on biblionumber 1');
79
80 @orders = GetOrdersByBiblionumber( $biblionumber2 );
81 is(scalar(@orders), 2, '2 orders on biblionumber 2');
82
83 #End transaction
84 $schema->storage->txn_rollback();
85
86 done_testing;