#!perl -T use 5.006; use strict; use warnings; use Test::More; use Test::Exception; use Security::Monitoring::Logs::Normalization::Parser; use diagnostics; BEGIN { plan tests => 9; use_ok( 'Security::Monitoring::Logs::Normalization::Parser' ) || print "Bail out!\n"; } my $class = 'Security::Monitoring::Logs::Normalization::Parser'; diag( "Testing Parser module $Security::Monitoring::Logs::Normalization::Parser::VERSION, Perl $], $^X" ); my $callback = 'sub { my($result,$input,$output) = @_; if ($result){ print $output $input; } }'; my $params ={name=>"dummy",tags=>"silly",regex=>'m/tata/',callback_ref=>$callback}; our $parser = $class->new($params); dies_ok(sub{my $new = $class->new(undef)},"new dies when params undef"); ok(defined($parser),'my dummy parser correctly created'); my $input = "tata\ntoto\ntutu"; my $output; open my $fh_input, '<',\$input; open my $fh_output,'>',\$output; $parser->parse($fh_input,$fh_output); is($output,"tata\n",'match parsing works'); $parser->{regex} = 's/(tata)/$1tutu/'; open $fh_output, '>',\$output; seek $fh_input,0,0; $parser->parse($fh_input,$fh_output); is($output,"tatatutu\n","substitution parsing works"); dies_ok(sub{ $parser->parse(undef,$fh_output)},"parse dies with undefined input"); dies_ok(sub{$parser->parse($fh_input,undef)}, "parse dies with undefined output"); dies_ok(sub {$parser->{regex} = undef;$parser->parse($fh_input,$fh_output)},"parse dies with undefined regex"); $parser->{regex} = 'm/tata/'; dies_ok(sub {$parser->{callback_ref} = undef; $parser->parse($fh_input,$fh_output); },"parser dies with undefined callback"); close $fh_output;