aboutsummaryrefslogtreecommitdiff
path: root/t/lib/Test/Sietima.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2016-12-29 15:52:34 +0000
committerdakkar <dakkar@thenautilus.net>2016-12-29 15:52:34 +0000
commit1b15f6a6858abb3413dc2df0c647690874f20b27 (patch)
tree84e01e4030b43d3fd59254fd9c52942ae42772c4 /t/lib/Test/Sietima.pm
parenttweak TODO (diff)
downloadSietima-1b15f6a6858abb3413dc2df0c647690874f20b27.tar.gz
Sietima-1b15f6a6858abb3413dc2df0c647690874f20b27.tar.bz2
Sietima-1b15f6a6858abb3413dc2df0c647690874f20b27.zip
tests for moderation cmdline
Diffstat (limited to 't/lib/Test/Sietima.pm')
-rw-r--r--t/lib/Test/Sietima.pm26
1 files changed, 25 insertions, 1 deletions
diff --git a/t/lib/Test/Sietima.pm b/t/lib/Test/Sietima.pm
index 94811d2..d7b720c 100644
--- a/t/lib/Test/Sietima.pm
+++ b/t/lib/Test/Sietima.pm
@@ -18,7 +18,8 @@ sub import {
Sietima::Policy->import::into($target);
for my $function (qw(transport make_sietima make_mail
- deliveries_are test_sending)) {
+ deliveries_are test_sending
+ run_cmdline_sub)) {
no strict 'refs';
"${target}::${function}"->** = __PACKAGE__->can($function);
}
@@ -161,4 +162,27 @@ sub test_sending (%args) {
$ctx->release;
}
+sub run_cmdline_sub($sietima,$method,$options={},$parameters={}) {
+ require Sietima::Runner;
+ my $r = Sietima::Runner->new({
+ options => $options,
+ parameters => $parameters,
+ cmd => $sietima,
+ op => $method,
+ });
+ $r->response(App::Spec::Run::Response->new);
+ ok(
+ lives { $sietima->$method($r) },
+ "calling $method should live",
+ );
+ my %ret;
+ for my $output ($r->response->outputs->@*) {
+ $ret{
+ $output->error ? 'error' : 'output'
+ } .= $output->content;
+ }
+ $ret{exit} = $r->response->exit();
+ return \%ret;
+}
+
1;