use Test::More tests => 3;
SKIP: {
eval "use File::Temp qw{ tempfile tempdir }";
skip "File::Temp not installed", 3 if $@;
my ($fh, $filename) = tempfile(UNLINK => 1);
diag("using temporary program file '$filename' to test functionality");
my $contents = <<'EOT';
use App::Rad;
App::Rad->run();
sub test1 {
my $c = shift;
if ($c->argv->[0]) {
return 'got ' . $c->argv->[0];
}
else {
return 'my test #1';
}
}
sub pre_process {
my $c = shift;
if ($c->argv->[0] eq 'tested') {
$c->argv->[0] .= ' again';
}
}
sub teardown {
print 'tearing down...';
}
sub post_process {
my $c = shift;
print $c->output() . ' [NARF!]' . $/;
}
EOT
print $fh $contents;
close $fh;
my $ret = `$^X $filename`;
my $helptext = <<"EOHELP";
Usage: $filename command [arguments]
Available Commands:
help \tshow syntax and available commands
test1\t
[NARF!]
EOHELP
$helptext .= 'tearing down...';
is($ret, $helptext);
$ret = '';
$ret = `$^X $filename test1`;
is($ret, "my test #1 [NARF!]\ntearing down...");
$ret = '';
$ret = `$^X $filename test1 tested`;
is($ret, "got tested again [NARF!]\ntearing down...");
}