ProgressMonitor
view release on metacpan or search on metacpan
t/03-Message1.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use ProgressMonitor::Stringify::ToCallback;
use ProgressMonitor::Stringify::Fields::Fixed;
my $msg = 'xyz';
my @renderings = (
"tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick",
"xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick",
"tick", "xyz.", "tick", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick",
"xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick", "xyz.", "tick",
"tick", "xyz.", "tick", "tick", "xyz.", "tick", "tick",
);
plan tests => scalar(@renderings);
my $index = 0;
my $cb = sub {
my $rendering = shift;
my $expected = $renderings[$index++];
if ($rendering eq $expected)
{
ok(1);
}
else
{
print STDERR "\nSAW: '$rendering', EXPECTED: '$expected'\n";
ok(0);
}
return 0;
};
my $monitor =
ProgressMonitor::Stringify::ToCallback->new(
{
maxWidth => 79,
fields => [ProgressMonitor::Stringify::Fields::Fixed->new({text => "tick"})],
tickCallback => $cb,
messageFiller => '.',
messageStrategy => 'overlay'
}
);
$monitor->prepare;
for (1 .. 10)
{
$monitor->tick;
$monitor->setMessage($msg);
$monitor->setMessage(undef);
}
$monitor->begin(10);
for (1 .. 10)
{
$monitor->tick(1);
$monitor->setMessage($msg);
$monitor->setMessage(undef);
}
$monitor->end;
( run in 0.979 second using v1.01-cache-2.11-cpan-39bf76dae61 )