use strict;
use warnings qw(all);
use 5.022;
use Test::More;
use Config::Structured;
use File::Slurp qw(slurp);
my @f = (
{conf => 't/conf/perl/config.conf', def => 't/conf/perl/config.conf.def'},
{conf => 't/conf/json/config.json', def => 't/conf/json/definition.json'},
{conf => 't/conf/yml/config.yml', def => 't/conf/yml/definition.yml'},
);
plan tests => 1 + 4 * @f;
use_ok('Config::Structured', 'Loaded Config::Structured');
foreach my $f (@f) {
ok(my $conf = Config::Structured->new(structure => $f->{def}, config => $f->{conf}), 'Initialized with filenames');
is($conf->db->pass, 'app_pass', 'Check conf->db->pass value');
ok(my $fconf = Config::Structured->new(structure => scalar slurp($f->{def}), config => scalar slurp($f->{conf})),
'Initialized with data');
is($fconf->db->pass, 'app_pass', 'Check fconf->db->pass value');
}