The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use lib "t/lib";
use Test::More (tests => 10);

BEGIN
{
    use_ok "Test::MxD::Simple";
}

{
    my $xml = <<EOXML;
<feed attribute="hoge" xmlns="http://www.w3.org/2005/Atom">
<title>Hoge</title>
<multi>multi1</multi>
<multi>multi2</multi>
<multi>multi3</multi>
<multi>multi4</multi>
</feed>
EOXML

    my $obj = Test::MxD::Simple->new(node => $xml);
    ok($obj);
    isa_ok($obj, 'Test::MxD::Simple');

    is( $obj->title, "Hoge" );

    $obj->title("Wee");

    is( $obj->title, "Wee" );

    my @multi = $obj->multi;
    is_deeply(\@multi,[ 'multi1', 'multi2', 'multi3', 'multi4' ] );

    $obj->multi('multi5', 'multi6');
    @multi = $obj->multi;
    is_deeply(\@multi,[ 'multi5', 'multi6' ]);

    my $attr = $obj->attribute();
    is($attr, "hoge");
    $obj->attribute("fuga");
    is($obj->attribute, "fuga");
}

{
    my $xml = <<EOXML;
<food attribute="hoge" xmlns="http://www.w3.org/2005/Atom">
<title>Hoge</title>
<multi>multi1</multi>
<multi>multi2</multi>
<multi>multi3</multi>
<multi>multi4</multi>
</food>
EOXML

    my $obj = eval { Test::MxD::Simple->new(node => $xml) };
    like($@, qr/given node does not have required root node/);
}