use Test::More tests => 6;

BEGIN {
    use_ok('DataFlow::Proc::MultiPageURLGenerator');
}

eval { $m = DataFlow::Proc::MultiPageURLGenerator->new };
ok( $@, 'Needs required parameters' );

$m =
  DataFlow::Proc::MultiPageURLGenerator->new(
    make_page_url => sub { $_[1] . '?page=' . $_[2] }, );
ok($m);

eval { $m->last_page };
ok( $@, q{Must pass 'last_page' or 'produce_last_page'} );

$m = DataFlow::Proc::MultiPageURLGenerator->new(
    make_page_url => sub { $_[1] . '?page=' . $_[2] },
    last_page     => 10,
);
@res = $m->process('http://a.b.c.d/bozo');
is( scalar( @{ $res[0] } ), 10, 'result has the right size' );
is_deeply(
    $res[0],
    [
        'http://a.b.c.d/bozo?page=1', 'http://a.b.c.d/bozo?page=2',
        'http://a.b.c.d/bozo?page=3', 'http://a.b.c.d/bozo?page=4',
        'http://a.b.c.d/bozo?page=5', 'http://a.b.c.d/bozo?page=6',
        'http://a.b.c.d/bozo?page=7', 'http://a.b.c.d/bozo?page=8',
        'http://a.b.c.d/bozo?page=9', 'http://a.b.c.d/bozo?page=10',
    ],
    'produces the expected result'
);