# vim: cindent ft=perl sm sw=4 use warnings; use strict; use Test::More tests => 4; BEGIN { use_ok('Config::Scoped') } my ( $p, $cfg ); my $text = <<'eot'; { # defaults, lexically scoped community = public; variables = [ ifInOctets, ifOutOctets ]; oids = { ifInOctets = 1.3.6.1.2.1.2.2.1.10; ifOutOctets = 1.3.6.1.2.1.2.2.1.16; }; %warnings parameter off; ### allow parameter redefinition devices rtr001 { ports = [ 1, 2, 8, 9 ]; } devices rtr007 { community = 'really top secret!'; ports = [ 1, 2, 3, 4 ]; } } eot my $expected = { 'devices' => { 'rtr001' => { 'ports' => [ '1', '2', '8', '9' ], 'community' => 'public', 'variables' => [ 'ifInOctets', 'ifOutOctets' ], 'oids' => { 'ifInOctets' => '1.3.6.1.2.1.2.2.1.10', 'ifOutOctets' => '1.3.6.1.2.1.2.2.1.16' } }, 'rtr007' => { 'ports' => [ '1', '2', '3', '4' ], 'community' => 'really top secret!', 'variables' => [ 'ifInOctets', 'ifOutOctets' ], 'oids' => { 'ifInOctets' => '1.3.6.1.2.1.2.2.1.10', 'ifOutOctets' => '1.3.6.1.2.1.2.2.1.16' } } } }; isa_ok( $p = Config::Scoped->new(), 'Config::Scoped' ); is_deeply( $p->parse( text => $text ), $expected, 'decl test' ); $text = <<'eot'; Foo BAR BaZ { LowerCase = 'Values dont convert' }; eot $expected = { 'foo' => { 'bar' => { 'baz' => { 'lowercase' => 'Values dont convert' } } } }; $p = Config::Scoped->new(lc => 1); is_deeply( $p->parse( text => $text ), $expected, 'lowercase conversion' );