another swiping change and bump to version [0.08]
[perl-cwmp.git] / t / 20-methods.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 my $debug = shift @ARGV;
6
7 use Test::More tests => 16;
8 use Data::Dump qw/dump/;
9 use Cwd qw/abs_path/;
10 use File::Slurp;
11 use blib;
12
13 BEGIN {
14         use_ok('CWMP::Methods');
15 }
16
17 ok(my $abs_path = abs_path($0), "abs_path");
18 $abs_path =~ s!/[^/]*$!/!;      #!fix-vim
19
20 ok( my $method = CWMP::Methods->new({ debug => $debug }), 'new' );
21 isa_ok( $method, 'CWMP::Methods' );
22
23 sub check_method {
24         my $command = shift || die "no command?";
25
26         my $state = {
27                 ID => 42,
28         };
29
30         diag "check_method $command",dump( 'state', @_ ) if $debug;
31         ok( my $xml = $method->$command( $state, @_ ), "generate method $command" . dump(@_) );
32
33         my $file = "$abs_path/methods/$command.xml";
34
35         if ( ! -e $file ) {
36                 diag "creating $file";
37                 write_file( $file, $xml );
38         }
39
40         my $template_xml = read_file( $file ) || die "can't read template xml $file: $!";
41
42         is( $xml, $template_xml, "compare $file" );
43 }
44
45 check_method( 'InformResponse' );
46 check_method( 'GetRPCMethods' );
47 check_method( 'Reboot' );
48 check_method( 'SetParameterValues',
49         'InternetGatewayDevice.DeviceInfo.ProvisioningCode' => 'test provision',
50         'InternetGatewayDevice.DeviceInfo.X_000E50_Country' => 42,
51 );
52 check_method( 'GetParameterNames', 'InternetGatewayDevice.DeviceInfo.SerialNumber' );
53 check_method( 'GetParameterValues',
54         'InternetGatewayDevice.DeviceInfo.SerialNumber',
55         'InternetGatewayDevice.DeviceInfo.VendorConfigFile.',
56 );