#!/usr/bin/perl use strict; use warnings; use Test::More tests => 15; my $m; BEGIN { use_ok($m = "Verby::Config::Data::Mutable") }; can_ok($m, "new"); isa_ok(my $p = $m->new, $m); can_ok($p, "get"); is($p->get("foo"), undef, "get('foo') is undef"); can_ok($p, "AUTOLOAD"); is($p->foo, $p->get("foo"), "get('foo') is the same as ->foo"); $p->foo("value"); is($p->get("foo"), "value", "get('foo') is value"); is($p->foo, $p->get("foo"), "get('foo') is the same as ->foo"); can_ok($p, "derive"); isa_ok(my $c = $p->derive, $m); is($c->foo, $p->foo, "child inherits parents values"); $c->foo("blah"); is($c->foo, "blah", "child added value"); is($p->foo, "value", "parent unchanged"); $c->export("foo"); is($p->foo, $c->foo, "'foo' exported to parent");