App-NDTools

 view release on metacpan or  search on metacpan

t/bin/ndproc-Merge.t  view on Meta::CPAN

    cmd => [ @cmd, '--source', "_cfg.gamma.json", "$test.0.got", "$test.1.got" ],
    test => sub {
        files_eq_or_diff("$test.0.exp", "$test.0.got", $test) and
        files_eq_or_diff("$test.1.exp", "$test.1.got", $test)
    },
    clean => [ "$test.0.got", "$test.1.got" ],
);

$test = "path";
run_ok(
    name => $test,
    pre => sub { copy("_cfg.alpha.json", "$test.got") },
    cmd => [ @cmd, '--source', "_cfg.beta.json", '--merge', '{files}', '--merge', '{mtime}', "$test.got" ],
    test => sub { files_eq_or_diff("$test.exp", "$test.got", $test) },
);

$test = "preserve";
run_ok(
    name => $test,
    pre => sub { copy("_cfg.alpha.json", "$test.got") },
    cmd => [ @cmd, '--source', "_cfg.beta.json", '--style', 'R_REPLACE', '--preserve', '{fqdn}', "$test.got" ],
    test => sub { files_eq_or_diff("$test.exp", "$test.got", $test) },
);

$test = "source_self";
run_ok(
    name => $test,
    pre => sub { copy("_cfg.alpha.json", "$test.got") },
    cmd => [ @cmd, '--rules', "$test.rules.json", '--dump-blame', "$test.blame.got", "$test.got" ],
    test => sub {
        files_eq_or_diff("$test.exp", "$test.got", $test) and
        files_eq_or_diff("$test.blame.exp", "$test.blame.got", $test)
    },
    clean => [ "$test.got", "$test.blame.got" ],
);

$test = "sequent_merge";
run_ok(
    name => $test,
    pre => sub { copy("_cfg.alpha.json", "$test.got") },
    cmd => [ @cmd, '--source', "_cfg.beta.json", '--source', "_cfg.gamma.json", '--dump-blame', "$test.blame.got", "$test.got" ],
    test => sub {
        files_eq_or_diff("$test.exp", "$test.got", $test) and
        files_eq_or_diff("$test.blame.exp", "$test.blame.got", $test)
    },
    clean => [ "$test.got", "$test.blame.got" ],
);

$test = "style";
run_ok(
    name => $test,
    pre => sub { copy("_cfg.alpha.json", "$test.got") },
    cmd => [ @cmd, '--source', "_cfg.beta.json", '--merge', '{files}', '--style', 'L_OVERRIDE', '--merge', '{mtime}', "$test.got" ],
    test => sub { files_eq_or_diff("$test.exp", "$test.got", $test) },
);

$test = "strict_default"; # strict enabled by default
run_ok(
    name => $test,
    pre => sub { copy("_cfg.alpha.json", "$test.got") },
    cmd => [ @cmd, '--source', "_cfg.beta.json", '--merge', '{not_exists}', "$test.got" ],
    stderr => qr/ FATAL] No such path '\{not_exists\}' in /,
    test => sub { files_eq_or_diff("_cfg.alpha.json", "$test.got", $test) },
    exit => 4,
);

$test = "strict_enabled";
run_ok(
    name => $test,
    pre => sub { copy("_cfg.alpha.json", "$test.got") },
    cmd => [ @cmd, '--source', "_cfg.beta.json", '--strict', '--merge', '{not_exists}', "$test.got" ],
    stderr => qr/ FATAL] No such path '\{not_exists\}' in /,
    test => sub { files_eq_or_diff("_cfg.alpha.json", "$test.got", $test) },
    exit => 4,
);

$test = "strict_disabled";
run_ok(
    name => $test,
    pre => sub { copy("_cfg.alpha.json", "$test.got") },
    cmd => [ @cmd, '--source', "_cfg.beta.json", '--strict', '--merge', '{not_exists}', '--nostrict', '--merge', '{mtime}', "$test.got" ],
    test => sub { files_eq_or_diff("$test.exp", "$test.got", $test) },
);



( run in 2.045 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )