lemonldap-ng/lemonldap-ng-common/t/02-Common-Conf-ServerEnv.t

78 lines
2.2 KiB
Perl

use strict;
use Test::More tests => 14;
use Data::Dumper;
BEGIN { use_ok('Lemonldap::NG::Common::Conf') }
my $h;
ok(
$h = new Lemonldap::NG::Common::Conf( {
type => 'File',
dirName => "t/",
}
),
'type => file',
);
my $conf = {
cfgNum => 1,
test => '%SERVERENV:A%',
test2 => '%SERVERENV:B% %SERVERENV:C%',
'%SERVERENV:MYKEY%' => {
test => 'Test: %SERVERENV:A%',
array => [ 'a', '%SERVERENV:B% %SERVERENV:C%', ],
},
};
$ENV{A} = 'Aa';
$ENV{B} = 'Bb';
$ENV{C} = 'Cc';
$ENV{MYKEY} = 'MyKey';
ok( $h->store($conf) == 1, "Conf is stored" )
or print STDERR "$Lemonldap::NG::Common::Conf::msg $!";
my $cfg;
ok( $cfg = $h->getConf( { cfgNum => 1 } ), "Conf can be read" )
or print STDERR $Lemonldap::NG::Common::Conf::msg;
ok( $cfg->{test} eq '%SERVERENV:A%',
'%SERVERENV:A% is not substitued into Aa without useServerEnv' )
or print STDERR "Expect $cfg->{test} eq %SERVERENV:A%\n";
unlink 't/lmConf-1.json';
ok(
$h = new Lemonldap::NG::Common::Conf( {
type => 'File',
dirName => "t/",
useServerEnv => 1,
}
),
'type => file',
);
ok( $h->store($conf) == 1, "Conf is stored" )
or print STDERR "$Lemonldap::NG::Common::Conf::msg $!";
ok( $cfg = $h->getConf( { cfgNum => 1 } ), "Conf can be read" )
or print STDERR $Lemonldap::NG::Common::Conf::msg;
ok( $cfg->{test} eq 'Aa', '%SERVERENV:A% is substitued into Aa' )
or print STDERR "Expect $cfg->{test} eq Aa\n";
ok( $cfg->{test2} eq 'Bb Cc',
'%SERVERENV:B% %SERVERENV:C% is substitued into Bb Cc' )
or print STDERR "Expect $cfg->{test} eq Aa\n";
ok( ( !$cfg->{'%SERVERENV:MYKEY%'} and $cfg->{MyKey} ),
'Keyname is transformed' );
ok( (
$cfg->{MyKey}->{array}->[0] eq 'a'
and $cfg->{MyKey}->{array}->[1] eq 'Bb Cc'
),
'Values are substitued into arrays'
);
ok( $cfg = $h->getConf( { cfgNum => 1, raw => 1 } ), 'Get raw conf' );
ok( $cfg->{test} eq '%SERVERENV:A%',
'%SERVERENV:A% is not substitued into Aa in raw mode' )
or print STDERR "Expect $cfg->{test} eq %SERVERENV:A%\n";
unlink 't/lmConf-1.json';