BEGIN { use_ok(
"Tree::File::YAML"
); }
my
$data
= {
aliens
=> {
invaders
=> [
qw(zim v orbs decepticons)
],
'lost way'
=> [
"alf"
,
"ray walston"
,
"e.t."
] },
armies
=> {
german
=> {
soldiers
=> [
qw(schultz klink)
],
prisoners
=> [
"hogan"
,
"chuck norris"
,
"the rest of the gang"
] } },
stooges
=> [
qw(larry moe curly shemp)
]
};
{
my
$config
= Tree::File::YAML->new(
"examples/simple"
);
isa_ok(
$config
,
"Tree::File::YAML"
,
"the root"
);
is_deeply(
$config
->data,
$data
,
"total initial data matches"
);
is(
$config
->collapse,
'file'
,
"collapse entire tree"
);
my
$tmpdir
= File::Temp::tempdir(
CLEANUP
=> 1 );
$config
->
write
(
$tmpdir
);
ok(1,
"survived writing"
);
my
$copied
= Tree::File::YAML->new(
$tmpdir
);
isa_ok(
$copied
,
"Tree::File::YAML"
);
is_deeply(
$config
->data,
$copied
->data,
"copied and reloaded unchanged"
);
ok(-f
"$tmpdir"
,
"simple (root) created as a file"
);
ok(! -f
"$tmpdir/stooges"
,
"simple/stooges is not a disk entity"
);
ok(! -d
"$tmpdir/armies"
,
"simple/armies is not a disk entity"
);
}
{
my
$config
= Tree::File::YAML->new(
"examples/simple"
);
isa_ok(
$config
,
"Tree::File::YAML"
,
"the root"
);
is_deeply(
$config
->data,
$data
,
"total initial data matches"
);
my
$tmpdir
= File::Temp::tempdir(
CLEANUP
=> 1 );
$config
->
write
(
$tmpdir
);
ok(1,
"survived writing"
);
my
$copied
= Tree::File::YAML->new(
$tmpdir
);
isa_ok(
$copied
,
"Tree::File::YAML"
);
is_deeply(
$config
->data,
$copied
->data,
"copied and reloaded unchanged"
);
ok(-d
"$tmpdir"
,
"simple (root) created as a file"
);
ok(-f
"$tmpdir/stooges"
,
"simple/stooges is not a disk entity"
);
ok(-d
"$tmpdir/armies"
,
"simple/armies is not a disk entity"
);
$copied
->collapse();
$copied
->
write
();
ok(-f
"$tmpdir"
,
"simple (root) created as a file"
);
ok(! -f
"$tmpdir/stooges"
,
"simple/stooges is not a disk entity"
);
ok(! -d
"$tmpdir/armies"
,
"simple/armies is not a disk entity"
);
}