File: 10distributor.t

package info (click to toggle)
libxml-sax-machines-perl 0.46-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 436 kB
  • sloc: perl: 1,767; makefile: 9
file content (42 lines) | stat: -rw-r--r-- 877 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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( "<foo><bar /></foo>" );
},

sub {
    $out =~ m{<foo\s*><bar\s*/><bar\s*/></foo\s*>}
        ? ok 1
        : ok $out, "something like <foo><bar /></foo>" ;
},
);

plan tests => scalar @tests;

$_->() for @tests;