| Lines 19-25
          use Modern::Perl;
      
      
        Link Here | 
        
          | 19 |  | 19 |  | 
        
          | 20 | use POSIX qw(strftime); | 20 | use POSIX qw(strftime); | 
        
          | 21 |  | 21 |  | 
          
            
              | 22 | use Test::More tests => 92; | 22 | use Test::More tests => 65; | 
        
          | 23 | use Koha::Database; | 23 | use Koha::Database; | 
        
          | 24 |  | 24 |  | 
        
          | 25 | BEGIN { | 25 | BEGIN { | 
  
    | Lines 273-665
          for ( 0 .. 4 ) {
      
      
        Link Here | 
        
          | 273 |     $order_content[$_]->{str}->{ordernumber} = $ordernumbers[$_]; | 273 |     $order_content[$_]->{str}->{ordernumber} = $ordernumbers[$_]; | 
        
          | 274 | } | 274 | } | 
        
          | 275 |  | 275 |  | 
            
              | 276 | # Test UT sub _check_fields_of_order |  |  | 
            
              | 277 |  | 
            
              | 278 | my ( | 
            
              | 279 |     $test_missing_fields,   $test_extra_fields, | 
            
              | 280 |     $test_different_fields, $test_nbr_fields | 
            
              | 281 |   ) | 
            
              | 282 |   = _check_fields_of_order( | 
            
              | 283 |     [qw /a b c d e/], | 
            
              | 284 |     { str => { a => "bla", b => "105" }, num => { c => 15.12 } }, | 
            
              | 285 |     { a => "blabla", f => "f", b => "105", c => 15.1200, g => '' } | 
            
              | 286 |   ); | 
            
              | 287 | ok( | 
            
              | 288 |     ( | 
            
              | 289 |               ( $test_nbr_fields == 5 ) | 
            
              | 290 |           and ( join( " ", sort @$test_missing_fields ) eq 'd e' ) | 
            
              | 291 |           and ( join( " ", sort @$test_extra_fields )   eq 'f g' ) | 
            
              | 292 |           and ( join( " ", @$test_different_fields )    eq 'a' ) | 
            
              | 293 |     ), | 
            
              | 294 |     "_check_fields_of_order can check an order (test 1)" | 
            
              | 295 | ); | 
            
              | 296 | ( | 
            
              | 297 |     $test_missing_fields,   $test_extra_fields, | 
            
              | 298 |     $test_different_fields, $test_nbr_fields | 
            
              | 299 |   ) | 
            
              | 300 |   = _check_fields_of_order( | 
            
              | 301 |     [qw /a b c /], | 
            
              | 302 |     { str => { a => "bla", b => "105" }, num => { c => 15.00 } }, | 
            
              | 303 |     { a => "bla", b => "105", c => 15 } | 
            
              | 304 |   ); | 
            
              | 305 | ok( | 
            
              | 306 |     ( | 
            
              | 307 |               ( $test_nbr_fields == 3 ) | 
            
              | 308 |           and ( scalar @$test_missing_fields == 0 ) | 
            
              | 309 |           and ( scalar @$test_extra_fields == 0 ) | 
            
              | 310 |           and ( scalar @$test_different_fields == 0 ) | 
            
              | 311 |     ), | 
            
              | 312 |     "_check_fields_of_order can check an order (test 2)" | 
            
              | 313 | ); | 
            
              | 314 | ( | 
            
              | 315 |     $test_missing_fields,   $test_extra_fields, | 
            
              | 316 |     $test_different_fields, $test_nbr_fields | 
            
              | 317 |   ) | 
            
              | 318 |   = _check_fields_of_order( | 
            
              | 319 |     [qw /a b c d e/], | 
            
              | 320 |     { str => { a => "bla", b => "105" }, num => { c => 15.12 } }, | 
            
              | 321 |     { a => "blabla", b => "105", c => 15, d => "error" } | 
            
              | 322 |   ); | 
            
              | 323 | ok( | 
            
              | 324 |     ( | 
            
              | 325 |               ( $test_nbr_fields == 4 ) | 
            
              | 326 |           and ( join( " ", sort @$test_missing_fields ) eq 'e' ) | 
            
              | 327 |           and ( scalar @$test_extra_fields == 0 ) | 
            
              | 328 |           and ( join( " ", @$test_different_fields ) eq 'a c' ) | 
            
              | 329 |     ), | 
            
              | 330 |     "_check_fields_of_order can check an order (test 3)" | 
            
              | 331 | ); | 
            
              | 332 |  | 
            
              | 333 | # | 
            
              | 334 | # test GetOrder | 
            
              | 335 | # | 
            
              | 336 |  | 
            
              | 337 | my @expectedfields = qw( | 
            
              | 338 |   order_internalnote | 
            
              | 339 |   order_vendornote | 
            
              | 340 |   ordernumber | 
            
              | 341 |   biblionumber | 
            
              | 342 |   entrydate | 
            
              | 343 |   quantity | 
            
              | 344 |   currency | 
            
              | 345 |   listprice | 
            
              | 346 |   datereceived | 
            
              | 347 |   invoiceid | 
            
              | 348 |   freight | 
            
              | 349 |   unitprice | 
            
              | 350 |   unitprice_tax_included | 
            
              | 351 |   unitprice_tax_excluded | 
            
              | 352 |   quantityreceived | 
            
              | 353 |   datecancellationprinted | 
            
              | 354 |   purchaseordernumber | 
            
              | 355 |   basketno | 
            
              | 356 |   timestamp | 
            
              | 357 |   rrp | 
            
              | 358 |   rrp_tax_included | 
            
              | 359 |   rrp_tax_excluded | 
            
              | 360 |   ecost | 
            
              | 361 |   ecost_tax_included | 
            
              | 362 |   ecost_tax_excluded | 
            
              | 363 |   unitpricesupplier | 
            
              | 364 |   unitpricelib | 
            
              | 365 |   tax_rate | 
            
              | 366 |   tax_value | 
            
              | 367 |   discount | 
            
              | 368 |   budget_id | 
            
              | 369 |   budgetdate | 
            
              | 370 |   sort1 | 
            
              | 371 |   sort2 | 
            
              | 372 |   sort1_authcat | 
            
              | 373 |   sort2_authcat | 
            
              | 374 |   uncertainprice | 
            
              | 375 |   claims_count | 
            
              | 376 |   claimed_date | 
            
              | 377 |   subscriptionid | 
            
              | 378 |   parent_ordernumber | 
            
              | 379 |   orderstatus | 
            
              | 380 |   line_item_id | 
            
              | 381 |   suppliers_reference_number | 
            
              | 382 |   suppliers_reference_qualifier | 
            
              | 383 |   suppliers_report | 
            
              | 384 |   title | 
            
              | 385 |   author | 
            
              | 386 |   basketname | 
            
              | 387 |   branchcode | 
            
              | 388 |   publicationyear | 
            
              | 389 |   copyrightdate | 
            
              | 390 |   editionstatement | 
            
              | 391 |   isbn | 
            
              | 392 |   ean | 
            
              | 393 |   seriestitle | 
            
              | 394 |   publishercode | 
            
              | 395 |   publisher | 
            
              | 396 |   budget | 
            
              | 397 |   supplier | 
            
              | 398 |   supplierid | 
            
              | 399 |   estimateddeliverydate | 
            
              | 400 |   orderdate | 
            
              | 401 |   quantity_to_receive | 
            
              | 402 |   subtotal | 
            
              | 403 |   latesince | 
            
              | 404 |   cancellationreason | 
            
              | 405 | ); | 
            
              | 406 | ( | 
            
              | 407 |     $test_missing_fields,   $test_extra_fields, | 
            
              | 408 |     $test_different_fields, $test_nbr_fields | 
            
              | 409 |   ) | 
            
              | 410 |   = _check_fields_of_order( \@expectedfields, $order_content[0], | 
            
              | 411 |     GetOrder( $ordernumbers[0] ) ); | 
            
              | 412 | is( | 
            
              | 413 |     $test_nbr_fields, | 
            
              | 414 |     scalar @expectedfields, | 
            
              | 415 |     "GetOrder gets an order with the right number of fields" | 
            
              | 416 | ); | 
            
              | 417 | is( join( " ", @$test_missing_fields ), | 
            
              | 418 |     '', "GetOrder gets an order with no missing fields" ); | 
            
              | 419 | is( join( " ", @$test_extra_fields ), | 
            
              | 420 |     '', "GetOrder gets an order with no unexpected fields" ); | 
            
              | 421 | is( join( " ", @$test_different_fields ), | 
            
              | 422 |     '', "GetOrder gets an order with the right content in every fields" ); | 
            
              | 423 |  | 
            
              | 424 | # | 
            
              | 425 | # Test GetOrders | 
            
              | 426 | # | 
            
              | 427 |  | 
            
              | 428 | my @base_expectedfields = qw( | 
            
              | 429 |   order_internalnote | 
            
              | 430 |   order_vendornote | 
            
              | 431 |   notes | 
            
              | 432 |   ordernumber | 
            
              | 433 |   ecost | 
            
              | 434 |   ecost_tax_included | 
            
              | 435 |   ecost_tax_excluded | 
            
              | 436 |   uncertainprice | 
            
              | 437 |   url | 
            
              | 438 |   isbn | 
            
              | 439 |   copyrightdate | 
            
              | 440 |   serial | 
            
              | 441 |   cn_suffix | 
            
              | 442 |   cn_item | 
            
              | 443 |   marcxml | 
            
              | 444 |   freight | 
            
              | 445 |   cn_class | 
            
              | 446 |   title | 
            
              | 447 |   pages | 
            
              | 448 |   budget_encumb | 
            
              | 449 |   budget_name | 
            
              | 450 |   number | 
            
              | 451 |   itemtype | 
            
              | 452 |   totalissues | 
            
              | 453 |   author | 
            
              | 454 |   budget_permission | 
            
              | 455 |   parent_ordernumber | 
            
              | 456 |   size | 
            
              | 457 |   claims_count | 
            
              | 458 |   currency | 
            
              | 459 |   seriestitle | 
            
              | 460 |   timestamp | 
            
              | 461 |   editionstatement | 
            
              | 462 |   budget_parent_id | 
            
              | 463 |   publishercode | 
            
              | 464 |   unitprice | 
            
              | 465 |   unitprice_tax_included | 
            
              | 466 |   unitprice_tax_excluded | 
            
              | 467 |   collectionvolume | 
            
              | 468 |   budget_amount | 
            
              | 469 |   budget_owner_id | 
            
              | 470 |   datecreated | 
            
              | 471 |   claimed_date | 
            
              | 472 |   subscriptionid | 
            
              | 473 |   editionresponsibility | 
            
              | 474 |   sort2 | 
            
              | 475 |   volumedate | 
            
              | 476 |   budget_id | 
            
              | 477 |   illus | 
            
              | 478 |   ean | 
            
              | 479 |   biblioitemnumber | 
            
              | 480 |   datereceived | 
            
              | 481 |   orderstatus | 
            
              | 482 |   line_item_id | 
            
              | 483 |   suppliers_reference_number | 
            
              | 484 |   suppliers_reference_qualifier | 
            
              | 485 |   suppliers_report | 
            
              | 486 |   agerestriction | 
            
              | 487 |   budget_branchcode | 
            
              | 488 |   tax_rate | 
            
              | 489 |   tax_value | 
            
              | 490 |   listprice | 
            
              | 491 |   budget_code | 
            
              | 492 |   budgetdate | 
            
              | 493 |   basketno | 
            
              | 494 |   discount | 
            
              | 495 |   abstract | 
            
              | 496 |   collectionissn | 
            
              | 497 |   publicationyear | 
            
              | 498 |   collectiontitle | 
            
              | 499 |   invoiceid | 
            
              | 500 |   place | 
            
              | 501 |   issn | 
            
              | 502 |   quantityreceived | 
            
              | 503 |   entrydate | 
            
              | 504 |   cn_source | 
            
              | 505 |   sort1_authcat | 
            
              | 506 |   budget_notes | 
            
              | 507 |   biblionumber | 
            
              | 508 |   unititle | 
            
              | 509 |   sort2_authcat | 
            
              | 510 |   budget_expend | 
            
              | 511 |   rrp | 
            
              | 512 |   rrp_tax_included | 
            
              | 513 |   rrp_tax_excluded | 
            
              | 514 |   cn_sort | 
            
              | 515 |   lccn | 
            
              | 516 |   sort1 | 
            
              | 517 |   volume | 
            
              | 518 |   purchaseordernumber | 
            
              | 519 |   quantity | 
            
              | 520 |   budget_period_id | 
            
              | 521 |   frameworkcode | 
            
              | 522 |   volumedesc | 
            
              | 523 |   datecancellationprinted | 
            
              | 524 |   cancellationreason | 
            
              | 525 | ); | 
            
              | 526 | @expectedfields = | 
            
              | 527 |   ( @base_expectedfields, | 
            
              | 528 |     ( 'transferred_from_timestamp', 'transferred_from' ) ); | 
            
              | 529 | is( GetOrders(), undef, "GetOrders with no params returns undef" ); | 
        
          | 530 | DelOrder( $order_content[3]->{str}->{biblionumber}, $ordernumbers[3] ); | 276 | DelOrder( $order_content[3]->{str}->{biblionumber}, $ordernumbers[3] ); | 
            
              | 531 | my @get_orders = GetOrders($basketno); |  |  | 
            
              | 532 | ( | 
            
              | 533 |     $test_missing_fields,   $test_extra_fields, | 
            
              | 534 |     $test_different_fields, $test_nbr_fields | 
            
              | 535 |   ) | 
            
              | 536 |   = _check_fields_of_orders( \@expectedfields, \@order_content, \@get_orders ); | 
            
              | 537 | is( | 
            
              | 538 |     $$test_nbr_fields[0], | 
            
              | 539 |     scalar @expectedfields, | 
            
              | 540 |     "GetOrders gets orders with the right number of fields" | 
            
              | 541 | ); | 
            
              | 542 | is( join( " ", @$test_missing_fields ), | 
            
              | 543 |     '', "GetOrders gets orders with no missing fields" ); | 
            
              | 544 | is( join( " ", @$test_extra_fields ), | 
            
              | 545 |     '', "GetOrders gets orders with no unexpected fields" ); | 
            
              | 546 | is( join( " ", @$test_different_fields ), | 
            
              | 547 |     '', "GetOrders gets orders with the right content in every fields" ); | 
            
              | 548 | ok( | 
            
              | 549 |     ( | 
            
              | 550 |         ( scalar @get_orders == 4 ) | 
            
              | 551 |           and !grep ( $_->{ordernumber} eq $ordernumbers[3], @get_orders ) | 
            
              | 552 |     ), | 
            
              | 553 |     "GetOrders only gets non-cancelled orders" | 
            
              | 554 | ); | 
            
              | 555 |  | 
            
              | 556 | # | 
            
              | 557 | # Test GetOrders { cancelled => 1 } | 
            
              | 558 | # | 
            
              | 559 |  | 
            
              | 560 | @expectedfields = | 
            
              | 561 |   ( @base_expectedfields, ( 'transferred_to_timestamp', 'transferred_to' ) ); | 
            
              | 562 | @get_orders = GetOrders($basketno, { cancelled => 1 }); | 
            
              | 563 | ( | 
            
              | 564 |     $test_missing_fields,   $test_extra_fields, | 
            
              | 565 |     $test_different_fields, $test_nbr_fields | 
            
              | 566 |   ) | 
            
              | 567 |   = _check_fields_of_orders( \@expectedfields, \@order_content, \@get_orders ); | 
            
              | 568 | is( | 
            
              | 569 |     $$test_nbr_fields[0], | 
            
              | 570 |     scalar @expectedfields, | 
            
              | 571 |     "GetOrders { cancelled => 1 } gets orders with the right number of fields" | 
            
              | 572 | ); | 
            
              | 573 | is( join( " ", @$test_missing_fields ), | 
            
              | 574 |     '', "GetOrders { cancelled => 1 } gets orders with no missing fields" ); | 
            
              | 575 | is( join( " ", @$test_extra_fields ), | 
            
              | 576 |     '', "GetOrders { cancelled => 1 } gets orders with no unexpected fields" ); | 
            
              | 577 | is( join( " ", @$test_different_fields ), | 
            
              | 578 |     '', | 
            
              | 579 |     "GetOrders { cancelled => 1 } gets orders with the right content in every fields" ); | 
            
              | 580 | ok( | 
            
              | 581 |     ( | 
            
              | 582 |         ( scalar @get_orders == 1 ) | 
            
              | 583 |           and grep ( $_->{ordernumber} eq $ordernumbers[3], @get_orders ) | 
            
              | 584 |     ), | 
            
              | 585 |     "GetOrders { cancelled => 1 } only gets cancelled orders" | 
            
              | 586 | ); | 
            
              | 587 |  | 
            
              | 588 | # | 
            
              | 589 | # Test SearchOrders | 
            
              | 590 | # | 
            
              | 591 |  | 
            
              | 592 | @expectedfields = qw ( | 
            
              | 593 |   order_internalnote | 
            
              | 594 |   order_vendornote | 
            
              | 595 |   notes | 
            
              | 596 |   basketgroupid | 
            
              | 597 |   basketgroupname | 
            
              | 598 |   firstname | 
            
              | 599 |   biblioitemnumber | 
            
              | 600 |   ecost | 
            
              | 601 |   ecost_tax_included | 
            
              | 602 |   ecost_tax_excluded | 
            
              | 603 |   uncertainprice | 
            
              | 604 |   creationdate | 
            
              | 605 |   datereceived | 
            
              | 606 |   orderstatus | 
            
              | 607 |   line_item_id | 
            
              | 608 |   suppliers_reference_number | 
            
              | 609 |   suppliers_reference_qualifier | 
            
              | 610 |   suppliers_report | 
            
              | 611 |   isbn | 
            
              | 612 |   copyrightdate | 
            
              | 613 |   tax_rate | 
            
              | 614 |   tax_value | 
            
              | 615 |   serial | 
            
              | 616 |   listprice | 
            
              | 617 |   budgetdate | 
            
              | 618 |   basketno | 
            
              | 619 |   discount | 
            
              | 620 |   surname | 
            
              | 621 |   freight | 
            
              | 622 |   abstract | 
            
              | 623 |   title | 
            
              | 624 |   closedate | 
            
              | 625 |   basketname | 
            
              | 626 |   invoiceid | 
            
              | 627 |   author | 
            
              | 628 |   parent_ordernumber | 
            
              | 629 |   claims_count | 
            
              | 630 |   entrydate | 
            
              | 631 |   currency | 
            
              | 632 |   quantityreceived | 
            
              | 633 |   seriestitle | 
            
              | 634 |   sort1_authcat | 
            
              | 635 |   timestamp | 
            
              | 636 |   biblionumber | 
            
              | 637 |   unititle | 
            
              | 638 |   sort2_authcat | 
            
              | 639 |   rrp | 
            
              | 640 |   rrp_tax_included | 
            
              | 641 |   rrp_tax_excluded | 
            
              | 642 |   unitprice | 
            
              | 643 |   unitprice_tax_included | 
            
              | 644 |   unitprice_tax_excluded | 
            
              | 645 |   sort1 | 
            
              | 646 |   ordernumber | 
            
              | 647 |   datecreated | 
            
              | 648 |   purchaseordernumber | 
            
              | 649 |   quantity | 
            
              | 650 |   claimed_date | 
            
              | 651 |   subscriptionid | 
            
              | 652 |   frameworkcode | 
            
              | 653 |   sort2 | 
            
              | 654 |   datecancellationprinted | 
            
              | 655 |   budget_id | 
            
              | 656 |   authorisedby | 
            
              | 657 |   booksellerid | 
            
              | 658 |   cancellationreason | 
            
              | 659 | ); | 
            
              | 660 |  | 
            
              | 661 | # note that authorisedby was added to the return of SearchOrder by the | 
            
              | 662 | # patch for bug 11777 | 
        
          | 663 |  | 277 |  | 
        
          | 664 | my $invoiceid = AddInvoice( | 278 | my $invoiceid = AddInvoice( | 
        
          | 665 |     invoicenumber => 'invoice', | 279 |     invoicenumber => 'invoice', | 
  
    | Lines 684-706
          my $search_orders = SearchOrders({
      
      
        Link Here | 
        
          | 684 |     basketno     => $basketno | 298 |     basketno     => $basketno | 
        
          | 685 | }); | 299 | }); | 
        
          | 686 | isa_ok( $search_orders, 'ARRAY' ); | 300 | isa_ok( $search_orders, 'ARRAY' ); | 
            
              | 687 | ( |  |  | 
            
              | 688 |     $test_missing_fields,   $test_extra_fields, | 
            
              | 689 |     $test_different_fields, $test_nbr_fields | 
            
              | 690 |   ) | 
            
              | 691 |   = _check_fields_of_orders( \@expectedfields, \@order_content, | 
            
              | 692 |     $search_orders ); | 
            
              | 693 | is( | 
            
              | 694 |     $$test_nbr_fields[0], | 
            
              | 695 |     scalar @expectedfields, | 
            
              | 696 |     "SearchOrders gets orders with the right number of fields" | 
            
              | 697 | ); | 
            
              | 698 | is( join( " ", @$test_missing_fields ), | 
            
              | 699 |     '', "SearchOrders gets orders with no missing fields" ); | 
            
              | 700 | is( join( " ", @$test_extra_fields ), | 
            
              | 701 |     '', "SearchOrders gets orders with no unexpected fields" ); | 
            
              | 702 | is( join( " ", @$test_different_fields ), | 
            
              | 703 |     '', "SearchOrders gets orders with the right content in every fields" ); | 
        
          | 704 | ok( | 301 | ok( | 
        
          | 705 |     ( | 302 |     ( | 
        
          | 706 |         ( scalar @$search_orders == 4 ) | 303 |         ( scalar @$search_orders == 4 ) | 
  
    | Lines 755-788
          is( scalar (@$search_orders), 0, "SearchOrders takes into account the biblionumb
      
      
        Link Here | 
        
          | 755 | ok( GetBudgetByOrderNumber( $ordernumbers[0] )->{'budget_id'} eq $budgetid, | 352 | ok( GetBudgetByOrderNumber( $ordernumbers[0] )->{'budget_id'} eq $budgetid, | 
        
          | 756 |     "GetBudgetByOrderNumber returns expected budget" ); | 353 |     "GetBudgetByOrderNumber returns expected budget" ); | 
        
          | 757 |  | 354 |  | 
            
              | 758 | # |  |  | 
            
              | 759 | # Test GetLateOrders | 
            
              | 760 | # | 
            
              | 761 |  | 
            
              | 762 | @expectedfields = qw ( | 
            
              | 763 |   orderdate | 
            
              | 764 |   author | 
            
              | 765 |   budget | 
            
              | 766 |   supplierid | 
            
              | 767 |   claims_count | 
            
              | 768 |   supplier | 
            
              | 769 |   publisher | 
            
              | 770 |   ordernumber | 
            
              | 771 |   quantity | 
            
              | 772 |   basketno | 
            
              | 773 |   claimed_date | 
            
              | 774 |   branch | 
            
              | 775 |   estimateddeliverydate | 
            
              | 776 |   title | 
            
              | 777 |   publicationyear | 
            
              | 778 |   unitpricelib | 
            
              | 779 |   unitpricesupplier | 
            
              | 780 |   subtotal | 
            
              | 781 |   latesince | 
            
              | 782 |   basketname | 
            
              | 783 |   basketgroupid | 
            
              | 784 |   basketgroupname | 
            
              | 785 | ); | 
        
          | 786 | my @lateorders = GetLateOrders(0); | 355 | my @lateorders = GetLateOrders(0); | 
        
          | 787 | is( scalar grep ( $_->{basketno} eq $basketno, @lateorders ), | 356 | is( scalar grep ( $_->{basketno} eq $basketno, @lateorders ), | 
        
          | 788 |     0, "GetLateOrders does not get orders from opened baskets" ); | 357 |     0, "GetLateOrders does not get orders from opened baskets" ); | 
  
    | Lines 794-815
          ok( !grep ( $_->{ordernumber} eq $ordernumbers[3], @lateorders ),
      
      
        Link Here | 
        
          | 794 |     "GetLateOrders does not gets cancelled orders" ); | 363 |     "GetLateOrders does not gets cancelled orders" ); | 
        
          | 795 | ok( !grep ( $_->{ordernumber} eq $ordernumbers[4], @lateorders ), | 364 | ok( !grep ( $_->{ordernumber} eq $ordernumbers[4], @lateorders ), | 
        
          | 796 |     "GetLateOrders does not gets reveived orders" ); | 365 |     "GetLateOrders does not gets reveived orders" ); | 
            
              | 797 | ( |  |  | 
            
              | 798 |     $test_missing_fields,   $test_extra_fields, | 
            
              | 799 |     $test_different_fields, $test_nbr_fields | 
            
              | 800 |   ) | 
            
              | 801 |   = _check_fields_of_orders( \@expectedfields, \@order_content, \@lateorders ); | 
            
              | 802 | is( | 
            
              | 803 |     $$test_nbr_fields[0], | 
            
              | 804 |     scalar @expectedfields, | 
            
              | 805 |     "GetLateOrders gets orders with the right number of fields" | 
            
              | 806 | ); | 
            
              | 807 | is( join( " ", @$test_missing_fields ), | 
            
              | 808 |     '', "GetLateOrders gets orders with no missing fields" ); | 
            
              | 809 | is( join( " ", @$test_extra_fields ), | 
            
              | 810 |     '', "GetLateOrders gets orders with no unexpected fields" ); | 
            
              | 811 | is( join( " ", @$test_different_fields ), | 
            
              | 812 |     '', "GetLateOrders gets orders with the right content in every fields" ); | 
        
          | 813 |  | 366 |  | 
        
          | 814 | $search_orders = SearchOrders({ | 367 | $search_orders = SearchOrders({ | 
        
          | 815 |     booksellerid => $booksellerid, | 368 |     booksellerid => $booksellerid, | 
            
              | 816 | -  |  |  |