View | Details | Raw Unified | Return to bug 40387
Collapse All | Expand All

(-)a/t/db_dependent/Koha/EDI.t (-3 / +79 lines)
Lines 21-34 use Modern::Perl; Link Here
21
use FindBin qw( $Bin );
21
use FindBin qw( $Bin );
22
22
23
use Test::NoWarnings;
23
use Test::NoWarnings;
24
use Test::More tests => 4;
24
use Test::More tests => 5;
25
use Test::MockModule;
25
use Test::MockModule;
26
26
27
use t::lib::Mocks;
27
use t::lib::Mocks;
28
use t::lib::Mocks::Logger;
28
use t::lib::Mocks::Logger;
29
use t::lib::TestBuilder;
29
use t::lib::TestBuilder;
30
30
31
use Koha::EDI qw(process_quote process_invoice);
31
use Koha::EDI qw(process_quote process_invoice create_edi_order);
32
use Koha::Edifact::Transport;
32
use Koha::Edifact::Transport;
33
use Koha::Edifact::File::Errors;
33
use Koha::Edifact::File::Errors;
34
use Koha::DateUtils qw(dt_from_string);
34
use Koha::DateUtils qw(dt_from_string);
Lines 897-899 subtest 'process_invoice_without_tax_rate' => sub { Link Here
897
897
898
    $schema->storage->txn_rollback;
898
    $schema->storage->txn_rollback;
899
};
899
};
900
- 
900
901
subtest 'create_edi_order_logging' => sub {
902
    plan tests => 8;
903
904
    $schema->storage->txn_begin;
905
906
    # Test 1: Error when called without basketno
907
    $logger->clear();
908
    my $result = create_edi_order( { ean => '1234567890' } );
909
    ok( !defined $result, 'create_edi_order returns undef when called without basketno' );
910
    $logger->error_is(
911
        'create_edi_order called with no basketno or ean',
912
        'Error logged when create_edi_order called without basketno'
913
    );
914
915
    # Test 2: Error when called without ean
916
    $logger->clear();
917
    $result = create_edi_order( { basketno => 123 } );
918
    ok( !defined $result, 'create_edi_order returns undef when called without ean' );
919
    $logger->error_is(
920
        'create_edi_order called with no basketno or ean',
921
        'Error logged when create_edi_order called without ean'
922
    );
923
924
    # Test 3: Warning when no orderlines for basket
925
    $logger->clear();
926
    my $empty_basket = $builder->build_object( { class => 'Koha::Acquisition::Baskets' } );
927
    my $ean          = $builder->build(
928
        {
929
            source => 'EdifactEan',
930
            value  => {
931
                description => 'test ean',
932
                branchcode  => undef,
933
                ean         => '1234567890'
934
            }
935
        }
936
    );
937
938
    $result = create_edi_order(
939
        {
940
            basketno => $empty_basket->basketno,
941
            ean      => $ean->{ean}
942
        }
943
    );
944
    ok( !defined $result, 'create_edi_order returns undef when no orderlines for basket' );
945
    $logger->warn_is(
946
        "No orderlines for basket " . $empty_basket->basketno,
947
        'Warning logged when no orderlines for basket'
948
    );
949
950
    # Test 4: Warning when no matching EAN found
951
    $logger->clear();
952
    my $basket_with_orders = $builder->build_object( { class => 'Koha::Acquisition::Baskets' } );
953
    my $order              = $builder->build_object(
954
        {
955
            class => 'Koha::Acquisition::Orders',
956
            value => {
957
                basketno    => $basket_with_orders->basketno,
958
                orderstatus => 'new'
959
            }
960
        }
961
    );
962
963
    $result = create_edi_order(
964
        {
965
            basketno => $basket_with_orders->basketno,
966
            ean      => 'nonexistent_ean'
967
        }
968
    );
969
    ok( !defined $result, 'create_edi_order returns undef when no matching EAN found' );
970
    $logger->warn_is(
971
        'No matching EAN found for nonexistent_ean',
972
        'Warning logged when no matching EAN found'
973
    );
974
975
    $schema->storage->txn_rollback;
976
};

Return to bug 40387