The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# ----------------------------------------------------------------
    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;
# ----------------------------------------------------------------