Config-Model-Itself
view release on metacpan or search on metacpan
t/itself-model.t view on Meta::CPAN
use ExtUtils::testlib;
use Test::More ;
use Config::Model 2.142;
use Config::Model::Tester::Setup qw/init_test setup_test_dir/;
use Data::Dumper ;
use Path::Tiny;
use Config::Model::Itself ;
use Test::Memory::Cycle;
use Test::Differences;
use Storable qw/dclone/;
use warnings;
use strict;
use v5.20;
use utf8;
subtest "deduplicate level" => sub {
my $input = {
A => 'important',
B => 'hidden',
C => 'important',
D => 'standard',
};
my $expect = {
important => [qw/A C/],
qw/hidden B standard D/
};
Config::Model::Itself::factorize_reverse_packed($input);
eq_or_diff($input, $expect, "test factorize_reverse_packed" );
};
subtest "deduplicate summary" => sub {
my $input = {
A => 'summary1',
B => 'summary2',
C => 'summary1',
D => 'summary2',
};
my $expect = {qw/A summary1 B summary2 C *A D *B/};
Config::Model::Itself::factorize_with_alias($input);
eq_or_diff($input, $expect, "test factorize_with_alias" );
};
subtest "factorize description and level" => sub {
my $class = {
name => 'Itself::CommonElement::WarnIfMatch',
element => [
msg => {
type => 'leaf',
value_type => 'string',
description => 'msg description',
level => 'important',
},
fix => {
type => 'leaf',
value_type => 'string',
level => 'important',
},
],
description => {
fix => 'fix description',
}
};
my $expect = {
name => 'Itself::CommonElement::WarnIfMatch',
element => [
( run in 0.610 second using v1.01-cache-2.11-cpan-6aa56a78535 )