# (X)Emacs mode: -*- cperl -*-
use strict;
+use warnings;
=head1 Unit Test Package for Term::ProgressBar
=cut
-use Data::Dumper qw( Dumper );
-use FindBin qw( $Bin );
-use Test qw( ok plan );
+use Test::More tests => 31;
+use Test::Exception;
-use lib $Bin;
-use test qw( evcheck );
+use Capture::Tiny qw(capture_stderr);
-use Capture::Tiny qw(capture);
-
-BEGIN {
- # 1 for compilation test,
- plan tests => 31,
- todo => [],
-}
-
-=head2 Test 1: compilation
-
-This test confirms that the test script and the modules it calls compiled
-successfully.
-
-=cut
-
-use Term::ProgressBar;
-
-ok 1, 1, 'compilation';
+use_ok 'Term::ProgressBar';
Term::ProgressBar->__force_term (50);
=cut
{
- my $p;
-
-my ($out, $err) = capture {
- ok (evcheck(sub { $p = Term::ProgressBar->new(10); }, 'Count 1-10 (1)' ),
- 1, 'Count 1-10 (1)');
- ok (evcheck(sub { $p->update($_) for 1..10 }, 'Count 1-10 (2)' ),
- 1, 'Count 1-10 (2)');
-};
-print $out;
- my @lines = grep $_ ne '', split /\r/, $err;
- print Dumper \@lines
+ my $err = capture_stderr {
+ my $p;
+ lives_ok { $p = Term::ProgressBar->new(10); } 'Count 1-10 (1)';
+ lives_ok { $p->update($_) for 1..10 } 'Count 1-10 (2)';
+ };
+
+ my @lines = grep {$_ ne ''} split /\r/, $err;
+ diag explain \@lines
if $ENV{TEST_DEBUG};
- ok $lines[-1], qr/\[=+\]/, 'Count 1-10 (3)';
- ok $lines[-1], qr/^\s*100%/, 'Count 1-10 (4)';
- ok $lines[$_], qr/\[[= ]+\]/, sprintf('Count 1-10 (%d)', 5+$_)
+ like $lines[-1], qr/\[=+\]/, 'Count 1-10 (3)';
+ like $lines[-1], qr/^\s*100%/, 'Count 1-10 (4)';
+ like $lines[$_], qr/\[[= ]+\]/, sprintf('Count 1-10 (%d)', 5+$_)
for 0..10;
}
# -------------------------------------
=cut
{
- my $p;
-
-my ($out, $err) = capture {
- ok (evcheck(sub { $p = Term::ProgressBar->new(10); }, 'Count 1-9 (1)' ),
- 1, 'Count 1-9 (1)');
- ok (evcheck(sub { $p->update($_) for 1..9 }, 'Count 1-9 (2)' ),
- 1, 'Count 1-9 (2)');
-};
-print $out;
+ my $err = capture_stderr {
+ my $p;
+ lives_ok { $p = Term::ProgressBar->new(10); } 'Count 1-9 (1)';
+ lives_ok { $p->update($_) for 1..9 } 'Count 1-9 (2)';
+ };
my @lines = grep $_ ne '', split /\r/, $err;
- print Dumper \@lines
+ diag explain \@lines
if $ENV{TEST_DEBUG};
- ok $lines[-1], qr/\[=+ +\]/, 'Count 1-9 (3)';
- ok $lines[-1], qr/^\s*90%/, 'Count 1-9 (4)';
- ok $lines[$_], qr/\[[= ]+\]/, sprintf('Count 1-9 (%d)', 5+$_)
+ like $lines[-1], qr/\[=+ +\]/, 'Count 1-9 (3)';
+ like $lines[-1], qr/^\s*90%/, 'Count 1-9 (4)';
+ like $lines[$_], qr/\[[= ]+\]/, sprintf('Count 1-9 (%d)', 5+$_)
for 0..9;
}
# -------------------------------------
=cut
{
-my ($out, $err) = capture {
- my $b = Term::ProgressBar->new(1000000);
- $b->update($_) foreach (0, 1);
-};
-print $out;
- my @lines = grep $_ ne '', split /\r/, $err;
- print Dumper \@lines
+ my $err = capture_stderr {
+ my $tp = Term::ProgressBar->new(1000000);
+ $tp->update($_) foreach (0, 1);
+ };
+
+ my @lines = grep {$_ ne ''} split /\r/, $err;
+ diag explain \@lines
if $ENV{TEST_DEBUG};
- ok scalar @lines, 1;
+ is scalar @lines, 1;
}