#=============================================================================== # # DESCRIPTION: Test Flow::Join mod # # AUTHOR: Aliaksandr P. Zahatski, #=============================================================================== #$Id$ package Record; use base 'Flow'; sub flow { my $self = shift; push @{ $self->{recs} }, @_; } 1; package RR; use base 'Flow'; 1; package count_begin_end; use base 'Flow'; sub begin { my $self = shift; $self->{b}++; return $self->SUPER::begin(@_); } sub end { my $self = shift; $self->{e}++; return $self->SUPER::end(@_); } sub count { my $self = shift; return $self->{e} + $self->{b}; } 1; package main; #use Test::More('no_plan'); use strict; use warnings; use Flow::Test; use Data::Dumper; use Test::More tests => 5; # last test to print use_ok('Flow::Join'); use_ok('Flow::Splice'); { my $n = new Flow::NamedPipesPack( name => "Test" ); my $s; my $x = new Flow::To::XML:: \$s; Flow::create_flow( $n, $x ); $x->parser->begin; $n->run(1); $x->parser->end; is_deeply_xml $s, q# 1 Test named_pipes 1 2 Test named_pipes #, 'NamedPipesPack' } { my $s; my $f1 = new Flow::Splice:: 20; my $f2 = new Flow::Splice:: 20; my $j = new Flow::Join::( Data => $f1, Meta => $f2 ); my $flw = Flow::create_flow( $j, ToXML => \$s ); $flw->parser->begin; $flw->parser->flow( 1 .. 2 ); $flw->parser->ctl_flow(60); $flw->parser->flow( 1 .. 2 ); $flw->parser->end; is_deeply_xml $s, q# 1 Data named_pipes 2 1 2 Data named_pipes 3 Data named_pipes 60 4 Data named_pipes 1 Meta named_pipes 2 1 2 Meta named_pipes 3 Meta named_pipes 60 4 Meta named_pipes 1 Data named_pipes 2 1 2 Data named_pipes 1 Meta named_pipes 2 1 2 Meta named_pipes #, 'join named pipes' } { my ( $s, $s1 ); my $f1 = Flow::create_flow( Splice => 200, Join => { Data => Flow::create_flow( sub { return [ grep { $_ > 10 } @_ ]; }, Splice => 10 ), Min => Flow::create_flow( sub { return [ grep { $_ == 1 } @_ ]; }, Splice => 40, ) }, ToXML => \$s, ); $f1->run( 1, 3, 11 ); is_deeply_xml $s, q# 1 Min named_pipes 1 2 Min named_pipes 1 Data named_pipes 11 2 Data named_pipes #, "Join and grep" }