# ----------------------------------------------------------------
use strict;
use Test::More;
# ----------------------------------------------------------------
{
local $@;
eval { require File::Temp; };
plan skip_all => 'File::Temp is not loaded.' if $@;
my $writable = &test_filetemp();
plan skip_all => 'temp file is not writable.' unless $writable;
plan tests => 7;
use_ok('XML::TreePP');
&test_writefile();
}
# ----------------------------------------------------------------
sub test_writefile {
my $file = File::Temp->new->filename;
ok( $file, "file:".$file );
my $foo = 'Hello';
my $bar = 'World!';
my $tree = { root => { foo => $foo, bar => $bar }};
my $tpp = XML::TreePP->new();
$tpp->writefile( $file, $tree );
ok( (-s $file), 'writefile' );
my $check = $tpp->parsefile( $file );
ok( ref $check, 'parsefile' );
ok( ref $check->{root}, 'parsefile' );
is( $check->{root}{foo}, $foo, 'foo' );
is( $check->{root}{bar}, $bar, 'bar' );
unlink( $file );
}
# ----------------------------------------------------------------
sub test_filetemp {
my $file = File::Temp->new->filename or return;
open( TEMP, "> $file" ) or return;
print TEMP "EOT\n";
close( TEMP );
my $size = ( -s $file );
unlink( $file );
$size;
}
# ----------------------------------------------------------------
;1;
# ----------------------------------------------------------------