The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::Base;
use Config::Any::YAML;
use Config::Multi;
use FindBin;
use File::Spec;
use File::Basename;
use Data::Dumper;

sub is_supported_yaml {
    eval { require YAML::Syck; YAML::Syck->VERSION( '0.70' ) };
    return 1 unless $@;
    eval { require YAML; };
    return $@ ? 0 : 1;
}

if ( is_supported_yaml ) {
    plan tests => 1 * blocks ;
}
else {
    plan skip_all => 'YAML format not supported';
}

my $dir = File::Spec->catfile( $FindBin::Bin , 'conf' );

run { 
    my $block = shift;
    local $ENV{$block->env_key} = File::Spec->catfile( $FindBin::Bin ,'conf', $block->file ) ;
    my $cm = Config::Multi->new({dir => $dir , app_name => 'myapp' , prefix => 'web'  });
    my $config = $cm->load();

    is( $block->porn , $config->{porn} );
    
}

__END__
=== test app
--- env_key chomp
CONFIG_MULTI_MYAPP
--- file chomp
env.yml
--- porn chomp
oppai
=== test prefi
--- env_key chomp
CONFIG_MULTI_WEB_MYAPP
--- file chomp
env-prefix.yml
--- porn chomp
tinna