The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More tests => 20;

use File::Spec::Functions qw(catfile);

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
my $class = 'ConfigReader::Simple';
my $method = 'exists';

use_ok( $class );
can_ok( $class, $method );

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
my @Directives = qw( Test1 Test2 Test3 Test4 );

my $config = $class->new( catfile( qw(t example.config) ), \@Directives );
isa_ok( $config, $class );
can_ok( $config, $method );

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
# these directives should be okay
{
foreach my $directive ( @Directives )
	{
	ok( $config->$method( $directive ), "Directive [$directive] exists" );
	}
}

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
# these directives should not be okay
{
my @Directives = qw( Test5 exists blah get );

foreach my $directive ( @Directives )
	{
	ok( ! $config->$method( $directive ), "$method fails for $directive");
	ok( ! $config->get( $directive ),     "get( $directive ) fails"     );
	ok( ! $config->$directive,            "->$method fails"             );
	}
}