CLI-Simple
view release on metacpan or search on metacpan
t/06-cli-simple-default.t view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
use English qw(no_match_vars);
use Test::More;
use Test::Output;
use Test::Exit;
use CLI::Simple qw($AUTO_DEFAULT);
use vars qw(@ARGV);
my @options = qw(
foo
bar=s
);
########################################################################
subtest 'one command' => sub {
########################################################################
local @ARGV = qw();
local $CLI::Simple::AUTO_DEFAULT = 1;
my $app = CLI::Simple->new( commands => { foo => sub { print "Hello World\n"; return 0; } } );
stdout_like( sub { $app->run(); }, qr/hello/xsmi, 'defaults to only command' );
};
########################################################################
subtest 'one command w/args' => sub {
########################################################################
local @ARGV = qw(bar biz);
local $CLI::Simple::AUTO_DEFAULT = 1;
my $app = CLI::Simple->new( commands => { foo => sub { print join q{,}, $_[0]->get_args; return 0; } } );
stdout_like( sub { $app->run(); }, qr/bar,biz/xsmi, 'defaults to only command' );
};
########################################################################
subtest 'AUTO_HELP' => sub {
########################################################################
local @ARGV = qw();
use CLI::Simple qw($AUTO_HELP);
$AUTO_HELP = 1;
stdout_like(
sub {
exits_ok(
sub {
CLI::Simple->new(
commands => {
bar => sub { return 0; },
foo => sub { print "Hello World\n"; return 0; }
}
);
}
);
},
qr/usage/xsmi
);
};
done_testing;
1;
__END__
=pod
=head1 USAGE
blah blah
=cut
( run in 0.837 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )