use strict; use Test; use XML::SAX::Machines qw( Pipeline ); my $m; my $out; my @tests = ( ( map { my $m = $_; sub { $out = ""; ok $m->isa( "XML::SAX::Machine" ); }, sub { $m->start_document; ok 1, 1, "start_document"}, sub { $m->start_element( { Name => "foo" } );ok 1, 1, "start_elt foo" }, sub { $m->start_element( { Name => "bar" } );ok 1, 1, "start_elt bar" }, sub { $m->end_element( { Name => "bar" } );ok 1, 1, "end_elt bar" }, sub { $m->end_element( { Name => "foo" } );ok 1, 1, "end_elt foo" }, sub { $m->end_document; ok 1, 1, "end_document" }, sub { $out =~ m{} ? ok 1 : ok $out, "something like " ; }, sub { $out = ""; ok $m->parse_string( "" ); }, sub { $out =~ m{} ? ok 1 : ok $out, "something like " ; }, } ( Pipeline( \$out ), Pipeline( "XML::SAX::Base", \$out ), Pipeline( "XML::SAX::Base", "XML::SAX::Base", \$out ), Pipeline( "XML::SAX::Base", XML::SAX::Writer->new( Output => \$out ), ), Pipeline( "XML::SAX::Base", { Handler => XML::SAX::Writer->new( Output => \$out ), }, ), ) ), ); plan tests => scalar @tests; $_->() for @tests;