use strict; use Test; use XML::SAX::Machines qw( Machine ); my $m; my $out; my @tests = ( sub { $out = ""; $m = Machine( [ Intake => "XML::Filter::Distributor" => qw( A B ) ], [ A => "XML::SAX::Base" => qw( Merger ) ], [ B => "XML::SAX::Base" => qw( Merger ) ], [ Merger => "XML::Filter::Merger" => qw( Output ) ], [ Output => \$out ], ); $m->Intake->set_aggregator( $m->Merger ); ok $m->isa( "XML::SAX::Machine" ); #use XML::Handler::Machine2GraphViz; #open FOO, ">foo.png" or die $!; #print FOO machine2graphviz( $m )->as_png; #close FOO; }, sub { $out = ""; ok $m->parse_string( "" ); }, sub { $out =~ m{} ? ok 1 : ok $out, "something like " ; }, ); plan tests => scalar @tests; $_->() for @tests;