From 1db96bc5b02b6c244129af1bfa696cfc9d0a5a98 Mon Sep 17 00:00:00 2001 From: Colin Campbell Date: Mon, 10 Dec 2018 12:57:50 +0000 Subject: [PATCH] Bug 20254: Add tests for transport ingest Add test framework for Koha::Edifact::Transport Add specific test that ingest does not duplicate an existing filename Signed-off-by: Mark Tompsett --- t/EdiTransport.t | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 t/EdiTransport.t diff --git a/t/EdiTransport.t b/t/EdiTransport.t new file mode 100644 index 0000000000..fb2442ea7e --- /dev/null +++ b/t/EdiTransport.t @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +use Modern::Perl; +use FindBin qw( $Bin ); +use Test::More; +use Test::MockModule; +use Module::Load::Conditional qw/check_install/; + +BEGIN { + if ( check_install( module => 'Test::DBIx::Class' ) ) { + plan tests => 5; + } + else { + plan skip_all => 'Need Test::DBIx::Class'; + } + +} + +use Test::DBIx::Class; + +fixtures_ok [ + VendorEdiAccount => + [ [ 'id', 'description', 'transport' ], [ 1, 'test vendor', 'FILE' ], ], + EdifactMessage => [ + [ 'message_type', 'filename', 'raw_msg' ], + [ 'TEST', 'duplicate', 'message_contents' ], + ], + ], + 'add_fixtures'; + +my $filename = 'QUOTES_413514.CEQ'; + +my $db = Test::MockModule->new('Koha::Database'); +$db->mock( _new_schema => sub { return Schema(); } ); + +use_ok('Koha::Edifact::Transport'); + +my $trans = Koha::Edifact::Transport->new(1); + +isa_ok( $trans, 'Koha::Edifact::Transport' ); + +$trans->working_directory("$Bin/edi_testfiles"); + +my $mhash = $trans->message_hash(); +$mhash->{message_type} = 'TEST'; # set a bogus message type + +$trans->ingest( $mhash, $filename ); + +my $cnt = ResultSet('EdifactMessage')->count(); + +is( $cnt, 2, 'unique message name ingested' ); + +$trans->ingest( $mhash, $filename ); # try a repeat ingest + +my $cnt2 = ResultSet('EdifactMessage')->count(); + +is( $cnt2, 2, 'duplicate message name not ingested' ); -- 2.11.0