The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use strict;
use warnings;

use Test::More 'no_plan';

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

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

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

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Test with a file that does not exist
{
my $filename = 'a/b/c';
ok( ! -e $filename, "Missing file is actually missing" );

my $mock = bless {}, $class;

is( $mock->$method( $filename ), undef, "$method with missing file fails" );
}

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Test with a file that isn't parseable
{
no warnings 'redefine';
no strict 'refs';
local *{ "${class}::parse" } = sub { 0 };

my $filename = catfile( qw(t example.config) );
ok( -e $filename, "$filename exists" );

my $mock = bless {}, $class;

is( $mock->$method( $filename ), undef, "$method with empty file fails" );
}