|
Lines 19-25
Link Here
|
| 19 |
|
19 |
|
| 20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
| 21 |
|
21 |
|
| 22 |
use Test::More tests => 10; |
22 |
use Test::More tests => 12; |
|
|
23 |
use Test::Exception; |
| 24 |
|
| 23 |
use t::lib::TestBuilder; |
25 |
use t::lib::TestBuilder; |
| 24 |
use t::lib::Mocks; |
26 |
use t::lib::Mocks; |
| 25 |
|
27 |
|
|
Lines 300-302
subtest 'orders' => sub {
Link Here
|
| 300 |
|
302 |
|
| 301 |
$schema->storage->txn_rollback; |
303 |
$schema->storage->txn_rollback; |
| 302 |
}; |
304 |
}; |
| 303 |
- |
305 |
|
|
|
306 |
subtest 'closed() tests' => sub { |
| 307 |
|
| 308 |
plan tests => 2; |
| 309 |
|
| 310 |
$schema->storage->txn_begin; |
| 311 |
|
| 312 |
my $open_basket = $builder->build_object( |
| 313 |
{ |
| 314 |
class => 'Koha::Acquisition::Baskets', |
| 315 |
value => { |
| 316 |
closedate => undef |
| 317 |
} |
| 318 |
} |
| 319 |
); |
| 320 |
|
| 321 |
my $closed_basket = $builder->build_object( |
| 322 |
{ |
| 323 |
class => 'Koha::Acquisition::Baskets', |
| 324 |
value => { |
| 325 |
closedate => \'NOW()' |
| 326 |
} |
| 327 |
} |
| 328 |
); |
| 329 |
|
| 330 |
ok( $closed_basket->closed, 'Closed basket is tested as closed' ); |
| 331 |
ok( !$open_basket->closed, 'Open basket is tested as open' ); |
| 332 |
|
| 333 |
$schema->storage->txn_rollback; |
| 334 |
}; |
| 335 |
|
| 336 |
subtest 'close() tests' => sub { |
| 337 |
|
| 338 |
plan tests => 3; |
| 339 |
|
| 340 |
$schema->storage->txn_begin; |
| 341 |
|
| 342 |
# Create an open basket |
| 343 |
my $basket = $builder->build_object( |
| 344 |
{ |
| 345 |
class => 'Koha::Acquisition::Baskets', |
| 346 |
value => { |
| 347 |
closedate => undef |
| 348 |
} |
| 349 |
} |
| 350 |
); |
| 351 |
|
| 352 |
for my $status ( qw( new ordered partial complete cancelled ) ) { |
| 353 |
$builder->build_object( |
| 354 |
{ |
| 355 |
class => 'Koha::Acquisition::Orders', |
| 356 |
value => { |
| 357 |
basketno => $basket->id, |
| 358 |
orderstatus => $status |
| 359 |
} |
| 360 |
} |
| 361 |
); |
| 362 |
} |
| 363 |
|
| 364 |
$basket->close; |
| 365 |
|
| 366 |
ok( $basket->closed, 'Basket is closed' ); |
| 367 |
my $ordered_orders = $basket->orders->search({ orderstatus => 'ordered' }); |
| 368 |
is( $ordered_orders->count, 3, 'Only open orders have been marked as ordered' ); |
| 369 |
|
| 370 |
throws_ok |
| 371 |
{ $basket->close; } |
| 372 |
'Koha::Exceptions::Acquisition::Basket::AlreadyClosed', |
| 373 |
'Trying to close an already closed basket throws an exception'; |
| 374 |
|
| 375 |
$schema->storage->txn_rollback; |
| 376 |
}; |