# vim: cindent ft=perl sm sw=4 use warnings; use strict; use Test::More tests => 20; BEGIN { use_ok('Config::Scoped') } my ( $p, $cfg ); ok( $p = Config::Scoped->new( warnings => 'off' ), 'constructor with warnings' ); ok( !$p->warnings_on( name => 'all' ), 'warnings_on: all' ); ok( !$p->warnings_on( name => 'digest' ), 'warnings_on: digest' ); ok( !$p->warnings_on( name => 'foo' ), 'warnings_on: foo' ); ok( $p->set_warnings( name => 'foo', switch => 'on' ), 'set_warnings: foo' ); ok( $p->warnings_on( name => 'foo' ), 'warnings_on: foo' ); ok( !$p->warnings_on( name => 'all' ), 'warnings_on: all' ); ok( !$p->warnings_on( name => 'parameter' ), 'warnings_on: parameter' ); ok( $p = Config::Scoped->new( warnings => { param => 'off', foo => 'off', perm => 'on' } ), 'constructor with warnings hash' ); my $warnings = { parameter => 'off', permissions => 'on', foo => 'off' }; is_deeply( $p->{local}{warnings}, $warnings, 'warnings hash' ); ok( $p->warnings_on( name => 'all' ), 'warnings_on: all' ); ok( $p->warnings_on( name => 'perm' ), 'warnings_on: permissions' ); ok( !$p->warnings_on( name => 'foo' ), 'warnings_on: foo' ); ok( $p->set_warnings( name => 'all', switch => 'off' ), 'set_warnings: all' ); ok( ! $p->warnings_on( name => 'perm' ), 'warnings_on: permissions' ); ok( $p->parse( text=> '%warnings permissions on'), 'warnings directive'); ok( $p->warnings_on( name => 'perm' ), 'warnings_on: permissions' ); ok( $p->parse( text=> '%warnings off'), 'warnings directive'); $warnings = { all => 'off'}; is_deeply( $p->{local}{warnings}, $warnings, 'warnings hash' );