use strict;
use warnings;
use Test::More tests => 30;
use ok 'XML::All';
my $xml = < 123 >;
is($$xml, 'a', 'scalar fetch');
$$xml = 'link';
is($xml, < 123 >, 'scalar store');
is(join(",", @$xml), "1,2,3", 'array fetch all');
is($xml->[1], < 2 >, 'array fetch elem');
$xml->[2] = < 2 >;
is($xml->[2], < 2 >, 'array store elem at boundary');
$xml->[3] = < 3 >;
is($xml->[3], < 3 >, 'array store elem over boundary');
is($#$xml, 3, 'array count');
delete $xml->[2];
is($xml, < 123 >, 'array delete');
my $pop = pop @$xml;
is($pop, < 3 >, 'array pop');
is($xml, < 12 >, 'array pop');
push @$xml,
, ;
is($xml, < 12
>, 'array push');
my $shift = shift @$xml;
is($shift, 1, 'array shift');
is($xml, < 2
>, 'array shift');
unshift @$xml,
, ;
is($xml, <
2
>, 'array unshift');
@{$xml->[2]} = ();
is($#{$xml->[2]}, -1, 'array clear');
is(join(",", %$xml), "href,/", 'hash fetch');
is($xml->{href}, '/', 'hash fetch elem');
$xml->{class} = 'moose';
is($xml->{class}, 'moose', 'hash store elem');
is($xml, <
>, 'hash store elem');
$xml->[0] = 123;
is($xml->[0], 123, 'set pcdata');
$xml->[2] = < 2 >;
is($xml->b, '2', 'selector');
is(($xml->b * 10), 20, 'numify');
is($xml->(), 123, 'pcdata deref');
is($xml->b +
, < 2
>, '+');
$xml +=
;
is($xml->[-1],
, '+=');
$xml -= ;
$xml -= ;
is($xml, < 123
>, '-');
is($xml -
, < 123 >, '-=');
undef ${ $xml->[-1] };
is($xml, < 123
>, 'undef $$x');
$xml->(
hr => sub { $$_ = "moose" }
);
is($xml, < 123 >, 'callback');