# (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 => 9;
+use Test::Exception;
-use lib $Bin;
-use test qw( DATA_DIR
- evcheck restore_output save_output );
+use Capture::Tiny qw(capture_stderr);
-BEGIN {
- # 1 for compilation test,
- plan tests => 9,
- 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);
{
my $p;
- save_output('stderr', *STDERR{IO});
my $name = 'doing nothing';
- ok (evcheck(sub { $p = Term::ProgressBar->new($name, 0); },
- 'V1 mode ( 1)' ),
- 1, 'V1 mode ( 1)');
- ok (evcheck(sub { $p->update($_) for 1..10 },'V1 mode ( 2)'),
- 1, 'V1 mode ( 2)');
- my $err = restore_output('stderr');
- my @lines = grep $_ ne '', split /\r/, $err;
- print Dumper \@lines
+ my $err = capture_stderr {
+ lives_ok { $p = Term::ProgressBar->new($name, 0); } 'V1 mode ( 1)';
+ lives_ok { $p->update($_) for 1..10 } 'V1 mode ( 2)';
+ };
+
+ my @lines = grep { $_ ne ''} split /\r/, $err;
+ diag explain @lines
if $ENV{TEST_DEBUG};
- ok $lines[-1], qr/^$name:/, 'V1 mode ( 3)';
- ok $lines[-1], qr/\(nothing to do\)/, 'V1 mode ( 4)';
+ like $lines[-1], qr/^$name:/, 'V1 mode ( 3)';
+ like $lines[-1], qr/\(nothing to do\)/, 'V1 mode ( 4)';
}
# -------------------------------------
{
my $p;
- save_output('stderr', *STDERR{IO});
my $name = 'zero';
- ok (evcheck(sub { $p = Term::ProgressBar->new({ count => 0,
- name => $name }); },
- 'V2 mode ( 1)' ),
- 1, 'V2 mode ( 1)');
- ok (evcheck(sub { $p->update($_) for 1..10 },'V2 mode ( 2)'),
- 1, 'V2 mode ( 2)');
- my $err = restore_output('stderr');
- my @lines = grep $_ ne '', split /\r/, $err;
- print Dumper \@lines
+ my $err = capture_stderr {
+ lives_ok { $p = Term::ProgressBar->new({ count => 0, name => $name }); } 'V2 mode ( 1)';
+ lives_ok { $p->update($_) for 1..10 } 'V2 mode ( 2)';
+ };
+
+ my @lines = grep {$_ ne ''} split /\r/, $err;
+ diag explain @lines
if $ENV{TEST_DEBUG};
- ok $lines[-1], qr/^$name:/, 'V2 mode ( 3)';
- ok $lines[-1], qr/\(nothing to do\)/, 'V2 mode ( 4)';
+ like $lines[-1], qr/^$name:/, 'V2 mode ( 3)';
+ like $lines[-1], qr/\(nothing to do\)/, 'V2 mode ( 4)';
}
# ----------------------------------------------------------------------------