AI-Pathfinding-OptimizeMultiple
view release on metacpan or search on metacpan
t/cmdline-app.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use AI::Pathfinding::OptimizeMultiple::App::CmdLine ();
use vars qw($trap);
eval
q{use Test::Trap qw( trap $trap :flow:stderr(systemsafe):stdout(systemsafe):warn );};
if ($@)
{
plan skip_all => "Test::Trap not found.";
}
plan tests => 6;
my @running_modes = (
{
blurb_base => 'modulino',
sub_ref => sub {
my ($flags) = @_;
AI::Pathfinding::OptimizeMultiple::App::CmdLine->new(
{
argv => [@$flags],
},
)->run();
},
},
{
blurb_base => 'cmd_line',
sub_ref => sub {
my ($flags) = @_;
system( $^X, "bin/optimize-game-ai-multi-tasking", @$flags );
},
},
);
# TEST:$num_subs=2;
foreach my $mode (@running_modes)
{
my $blurb_base = $mode->{blurb_base};
trap( sub { return $mode->{sub_ref}->( [qw(--help)] ); } );
# TEST*$num_subs
like( $trap->stdout(), qr/--output/,
"stdout matches --output flag. ($blurb_base)",
);
# TEST*$num_subs
like(
$trap->stdout(),
qr/--help[^\n]*-h[^\n]*displays this help screen/ms,
"stdout matches --output flag. ($blurb_base)",
);
# TEST*$num_subs
ok( scalar( !$trap->die ), "No exception was thrown. ($blurb_base)", );
}
( run in 0.784 second using v1.01-cache-2.11-cpan-ceb78f64989 )