#!/usr/bin/perl -w # # testing public methods of Kephra::Config::Tree # BEGIN { chdir '..' if -d '../t'; $| = 1; } use strict; use warnings; use lib 'lib'; use Test::More tests => 7; use Test::NoWarnings; use Kephra::Config::Tree; my $simple = {'a'=>{ 'very' => {'deep' => 'hash'}}}; my $sub = Kephra::Config::Tree::subtree($simple, 'a/very'); is_deeply( $sub, {'deep' => 'hash'}, 'subtree' ); is_deeply( Kephra::Config::Tree::copy($simple), $simple, 'copy' ); my $more = {'a'=>{ 'second' => {'very' => {'deeep' => 'hash'}}}}; my $merge = Kephra::Config::Tree::merge($simple, $more); is_deeply( { 'a'=>{ 'very' => {'deep' => 'hash'}, 'second' => {'very' => {'deeep' => 'hash'}}, },}, $merge, 'merge'); my $simpelmo = {'a'=>{ 'very' => {'deep' => 'trick', 'far' => 'out'}}}; my $update = Kephra::Config::Tree::update($simple, $simpelmo); is_deeply( {'a'=>{'very' => {'deep' => 'trick'}}}, $update, 'update'); my $diff1 = Kephra::Config::Tree::diff($simple, $simpelmo); my $moremo = {'a'=>{'very' => {'deep' => {second => 'trick'}, 'far' => 'out'}}}; my $diff2 = Kephra::Config::Tree::diff($moremo, $simpelmo); is_deeply( $diff1, $simple, 'simple diff'); is_deeply( $diff2, {'a'=>{'very' => {'deep' => {second => 'trick'}}}}, 'complex diff'); exit(0);