From: Shawn M Moore Date: Tue, 28 Apr 2009 07:21:59 +0000 (-0400) Subject: Begin writing tests X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a5d6e23bb6243458f07a8f3e9e533fc78a799544;p=gitmo%2FPerl-Critic-Dynamic-Moose.git Begin writing tests --- diff --git a/t/20_policies.t b/t/20_policies.t new file mode 100644 index 0000000..bd6f005 --- /dev/null +++ b/t/20_policies.t @@ -0,0 +1,85 @@ +#!perl + +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/branches/jeff/Perl-Critic-Dynamic/lib/Perl/Critic/Policy/Dynamic/ValidateAgainstSymbolTable.pm $ +# $Date: 2007-06-07 05:40:51 -0700 (Thu, 07 Jun 2007) $ +# $Author: thaljef $ +# $Revision: 1617 $ +############################################################################## + +use strict; +use warnings; +use Test::More; +use English qw(-no_match_vars); + +# common P::C testing tools +use Perl::Critic::TestUtils qw(subtests_in_tree pcritique); +Perl::Critic::TestUtils::block_perlcriticrc(); + +#----------------------------------------------------------------------------- + +my $subtests = subtests_in_tree( 't' ); + +# Check for cmdline limit on policies. Example: +# perl -Ilib t/20_policies.t BuiltinFunctions::ProhibitLvalueSubstr +if (@ARGV) { + my @policies = keys %{$subtests}; + # This is inefficient, but who cares... + for my $p (@policies) { + if (0 == grep {$_ eq $p} @ARGV) { + delete $subtests->{$p}; + } + } +} + +#----------------------------------------------------------------------------- + +# count how many tests there will be +my $nsubtests = 0; +for my $s (values %$subtests) { + $nsubtests += @$s; # one [pf]critique() test per subtest +} +my $npolicies = scalar keys %$subtests; # one can() test per policy + +plan tests => $nsubtests + $npolicies; + +#----------------------------------------------------------------------------- + +for my $policy ( sort keys %$subtests ) { + + can_ok( "Perl::Critic::Policy::$policy", 'violates' ); + + for my $subtest ( @{$subtests->{$policy}} ) { + + local $TODO = $subtest->{TODO}; # Is NOT a TODO if it's not set + my ($line, $test_name) = ($subtest->{lineno}, $subtest->{name}); + my $desc = join(' - ', $policy, "line $line", $test_name); + + my $number_of_violations = + eval { pcritique($policy, \$subtest->{code}, $subtest->{parms}) }; + + if ($subtest->{error}) { + if ( 'Regexp' eq ref $subtest->{error} ) { + like($EVAL_ERROR, $subtest->{error}, $desc); + } + else { + ok($EVAL_ERROR, $desc); + } + } + else { + #die $EVAL_ERROR if $EVAL_ERROR; + is($number_of_violations, $subtest->{failures}, $desc); + } + } +} + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 expandtab ft=perl: + diff --git a/t/DynamicMoose/ProhibitPublicBuilders.run b/t/DynamicMoose/ProhibitPublicBuilders.run new file mode 100644 index 0000000..ceff4ed --- /dev/null +++ b/t/DynamicMoose/ProhibitPublicBuilders.run @@ -0,0 +1,11 @@ +## name No builder method +## failures 0 +## cut + +package Class; +use Moose; + +has attr => ( + is => 'rw', +); +