X-Git-Url: http://git.rot13.org/?p=perl-cwmp.git;a=blobdiff_plain;f=t%2F10-request.t;h=03e90981ac063bb2a6f7f4e2f3ccce88ce4dff63;hp=80243a74c138dbf3305e4e791a8d0b6701ab6fca;hb=5d739fbf3bb8900d1e6bd08289632bdf15f98f97;hpb=6ae55ee7caaa8c33a10a983dcc3b50928eb52914 diff --git a/t/10-request.t b/t/10-request.t index 80243a7..03e9098 100755 --- a/t/10-request.t +++ b/t/10-request.t @@ -4,7 +4,7 @@ use warnings; my $debug = shift @ARGV; -use Test::More tests => 53; +use Test::More tests => 73; use Data::Dump qw/dump/; use Cwd qw/abs_path/; use File::Slurp; @@ -21,6 +21,9 @@ ok( $#models + 1, 'got models' ); ok(my $abs_path = abs_path($0), "abs_path"); $abs_path =~ s!/[^/]*$!/!; #!fix-vim +my $path2method; +my $triggers_count; + sub file_is_deeply { my ( $path ) = @_; @@ -28,6 +31,14 @@ sub file_is_deeply { diag $xml if $debug; + ok( my $trigger = $path2method->{$path}, "path2method($path)" ); + + CWMP::Request->add_trigger( name => $trigger, callback => sub { + my ( $self, $state ) = @_; + $triggers_count->{$trigger}++; + ok( $state, "called trigger $trigger" ); + }); + ok( my $state = CWMP::Request->parse( $xml ), 'parse' ); my $dump_path = $path; @@ -47,7 +58,13 @@ foreach my $model ( @models ) { my $dir = "$abs_path/$model/"; opendir(DIR, $dir) || die "can't opendir $dir: $!"; - my @xmls = map { "$dir/$_" } grep { /\.xml$/ && -f "$dir/$_" } readdir(DIR); + my @xmls = map { + my $path = "$dir/$_"; + my $method = $_; + $method =~ s/\.xml$//; + $path2method->{$path} = $method; + $path; + } grep { /\.xml$/ && -f "$dir/$_" } readdir(DIR); closedir DIR; diag "$model has ", $#xmls + 1, " xml tests"; @@ -60,3 +77,5 @@ foreach my $model ( @models ) { } } +diag "triggers_count = ",dump( $triggers_count ) if $debug; +