#!/usr/bin/env perl
use
5.008001;
my
@tests
= (
[
Good
=> 1],
[
BadContext
=> 0],
[
BadController
=> 0],
);
foreach
my
$test
(
@tests
) {
my
(
$package
,
$expected_ok
) =
@$test
;
my
$file
=
"t/$package.pm"
;
my
$critic
= Perl::Critic->new(
'-single-policy'
=>
'Catalyst::ProhibitUnreachableCode'
,
);
$critic
->add_policy(
'-policy'
=>
'Catalyst::ProhibitUnreachableCode'
,
'-params'
=> {
controller_methods
=>
'foo_and_detach'
},
);
my
@violations
=
$critic
->critique(
$file
);
if
(
$expected_ok
) {
ok(
(
@violations
== 0),
"$package should NOT violate"
,
);
diag
"VIOLATION: $_"
for
@violations
;
}
else
{
ok(
(
@violations
> 0),
"$package should violate"
,
);
}
}
done_testing;