]> git.vpit.fr Git - perl/modules/Perl-Critic-Policy-Dynamic-NoIndirect.git/blobdiff - t/10-basic.t
Generate reports for blocks and make t/10-basic.t recognize them
[perl/modules/Perl-Critic-Policy-Dynamic-NoIndirect.git] / t / 10-basic.t
index 68715f2d72fa84638ea4ae3386b4cc1d2ed7ecbd..399e5529516439e531964e572df0a08d3dbb7eda 100644 (file)
@@ -3,13 +3,14 @@
 use strict;
 use warnings;
 
-my ($tests, $subtests);
+my ($tests, $reports, $subtests);
 BEGIN {
  $tests    = 15;
+ $reports  = 25;
  $subtests = 3;
 }
 
-use Test::More tests => $tests + $subtests * 25;
+use Test::More tests => $tests + $subtests * $reports;
 
 use Perl::Critic::TestUtils qw/pcritique_with_violations/;
 
@@ -17,6 +18,12 @@ Perl::Critic::TestUtils::block_perlcriticrc();
 
 my $policy = 'Dynamic::NoIndirect';
 
+sub expect {
+ my ($meth, $obj) = @_;
+ $obj = ($obj =~ /^\s*\{/) ? "a block" : "object \"\Q$obj\E\"";
+ qr/^Indirect call of method \"\Q$meth\E\" on $obj/,
+}
+
 {
  local $/ = "####";
 
@@ -25,7 +32,7 @@ my $policy = 'Dynamic::NoIndirect';
  while (<DATA>) {
   s/^\s+//s;
 
-  my ($code, $expected) = split /^-+$/m, $_, 2;
+  my ($code, $expected) = split /^-{4,}$/m, $_, 2;
   my @expected = eval $expected;
 
   my @violations = eval { pcritique_with_violations($policy, \$code) };
@@ -48,9 +55,7 @@ my $policy = 'Dynamic::NoIndirect';
    my $pos = $v->location;
    my ($meth, $obj, $line, $col) = @$exp;
 
-   like $v->description,
-        qr/^Indirect call of method \"\Q$meth\E\" on object \"\Q$obj\E\"/,
-        "description $id";
+   like $v->description, expect($meth, $obj), "description $id";
    is   $pos->[0], $line, "line $id";
    is   $pos->[1], $col,  "column $id";
   }