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');