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 )