The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More no_plan => 1;
use Pipeline;

my $pipe = Pipeline->new();
$pipe->add_segment(
		   MySegmentPlacer->new(),
		   MySegmentFetcher->new()
		  );

$pipe->dispatch();

$pipe->dispatcher()->next( $pipe );
ok(Pipeline::Store::Simple->new() != $pipe->store);

$pipe->add_segment( Pipeline->new()->add_segment(
						 MySegmentFetcher->new()
						)
		  );
$pipe->dispatch();





package MySegmentPlacer;

use strict;
use warnings;
use Pipeline::Segment;
use base qw( Pipeline::Segment );

sub dispatch {
  my $self = shift;
  $self->store->set(bless({},'Some::Class'));
}

package MySegmentFetcher;

use strict;
use warnings;
use Pipeline::Segment;
use base qw( Pipeline::Segment );

sub dispatch {
  my $self = shift;
  $self->store->get('Some::Class');
  my $newstore = Pipeline::Store->new();
  main::ok($self->store->get('Some::Class') == $newstore->get('Some::Class'));
}

1;