use Modern::Perl;
-use Test::More tests => 7;
+use Test::More tests => 8;
use C4::Acquisition;
use C4::Biblio;
-use C4::Bookseller;
use C4::Budgets;
use MARC::Record;
+use Koha::Database;
use Koha::DateUtils qw( dt_from_string output_pref );
+use Koha::Acquisition::Booksellers;
+use Koha::Acquisition::Orders;
+use t::lib::TestBuilder;
+use t::lib::Mocks;
-my $dbh = C4::Context->dbh;
-$dbh->{AutoCommit} = 0;
-$dbh->{RaiseError} = 1;
+my $schema = Koha::Database->new()->schema();
+$schema->storage->txn_begin();
-my $booksellerid = C4::Bookseller::AddBookseller(
+my $builder = t::lib::TestBuilder->new;
+my $logged_in_user = $builder->build_object({ class => 'Koha::Patrons' });
+t::lib::Mocks::mock_userenv({ patron => $logged_in_user });
+
+my $bookseller = Koha::Acquisition::Bookseller->new(
{
name => "my vendor",
address1 => "bookseller's address",
phone => "0123456",
active => 1
}
-);
+)->store;
my $basketno = C4::Acquisition::NewBasket(
- $booksellerid
+ $bookseller->id
);
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",
}
);
# returns undef and croaks if basketno, quantity, biblionumber or budget_id is missing
-my $ordernumber = eval { C4::Acquisition::NewOrder() };
+my $order = eval { Koha::Acquisition::Order->new->store };
my $return_error = $@;
ok(
- ( ! defined $ordernumber )
+ ( ! defined $order )
&& ( defined $return_error ),
- "NewOrder with no params returns undef and croaks"
+ "Inserting an order with no params returns undef and croaks"
);
my $mandatoryparams = {
foreach my $mandatoryparams_key (@mandatoryparams_keys) {
my %test_missing_mandatoryparams = %$mandatoryparams;
delete $test_missing_mandatoryparams{$mandatoryparams_key};
- eval {
- $ordernumber =
- C4::Acquisition::NewOrder( \%test_missing_mandatoryparams );
+ $order = eval {
+ Koha::Acquisition::Order->new( \%test_missing_mandatoryparams )->store;
};
$return_error = $@;
my $expected_error = "Cannot insert order: Mandatory parameter $mandatoryparams_key is missing";
ok(
- ( !( defined $ordernumber ) )
+ ( !( defined $order ) )
&& ( index( $return_error, $expected_error ) >= 0 ),
-"NewOrder with no $mandatoryparams_key returns undef and croaks with expected error message"
+"Inserting an order with no $mandatoryparams_key returns undef and croaks with expected error message"
);
}
-$ordernumber = C4::Acquisition::NewOrder(
+$order = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 24,
biblionumber => $biblionumber1,
budget_id => $budget->{budget_id},
}
-);
+)->store;
+my $ordernumber = $order->ordernumber;
+$order = Koha::Acquisition::Orders->find( $ordernumber );
+is( $order->quantityreceived, 0, 'Koha::Acquisition::Order->insert set quantityreceivedto 0 if undef is given' );
+is( $order->entrydate, output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }), 'Koha::Acquisition::Order->store set entrydate to today' );
+is( $order->created_by, $logged_in_user->borrowernumber, 'Koha::Acquisition::Order->store set created_by to logged in user if not given' );
-my $order = C4::Acquisition::GetOrder( $ordernumber );
-is( $order->{quantityreceived}, 0, 'NewOrder set quantityreceivedto 0 if undef is given' );
-is( $order->{entrydate}, output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }), 'NewOrder set entrydate to today' );
+$schema->storage->txn_rollback();