39 lines
969 B
Perl
Executable File
39 lines
969 B
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Test::More qw{no_plan};
|
|
|
|
main();
|
|
|
|
sub main {
|
|
my $class = 'Fcm::CLI::Invoker';
|
|
use_ok($class);
|
|
test_normal($class);
|
|
}
|
|
|
|
################################################################################
|
|
# Tests normal usage
|
|
sub test_normal {
|
|
my ($class) = @_;
|
|
my $prefix = "normal";
|
|
my %OPTIONS = (option1 => 1, option2 => 2, option3 => 3);
|
|
my @ARGUMENTS = ('argument 1', 'argument 2');
|
|
my $invoker = $class->new({
|
|
command => 'command',
|
|
options => \%OPTIONS,
|
|
arguments => \@ARGUMENTS,
|
|
});
|
|
isa_ok($invoker, $class, $prefix);
|
|
is($invoker->get_command(), 'command', "$prefix: command");
|
|
is_deeply({$invoker->get_options()}, \%OPTIONS, "$prefix: options");
|
|
is_deeply([$invoker->get_arguments()], \@ARGUMENTS, "$prefix: arguments");
|
|
eval {
|
|
$invoker->invoke();
|
|
};
|
|
isa_ok($@, 'Fcm::CLI::Exception', "$prefix: invoke");
|
|
}
|
|
|
|
__END__
|