3 ##############################################################################
4 # $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/01_policy_config.t $
5 # $Date: 2008-06-06 00:48:04 -0500 (Fri, 06 Jun 2008) $
8 ##############################################################################
14 use Carp qw< confess >;
16 use Test::More tests => 29;
18 #-----------------------------------------------------------------------------
21 use_ok('Perl::Critic::PolicyConfig') or confess 'No point in continuing.';
27 Perl::Critic::PolicyConfig->new('Some::Policy');
30 $config->get_policy_short_name(),
32 'Policy short name gets saved.',
35 $config->get_set_themes(),
37 'set_themes is undef when not specified.',
40 $config->get_add_themes(),
42 'add_themes is undef when not specified.',
45 $config->get_severity(),
47 'severity is undef when not specified.',
50 $config->get_maximum_violations_per_document(),
52 'maximum_violations_per_document is undef when not specified.',
56 'is_empty() is true when there were no configuration values.',
59 my @parameter_names = $config->get_parameter_names();
61 scalar @parameter_names,
63 'There are no parameter names left.',
66 test_standard_parameters_undef_via_get($config);
71 Perl::Critic::PolicyConfig->new(
72 'Some::Other::Policy',
74 custom_parameter => 'blargh',
77 set_themes => 'thingy',
78 add_themes => 'another thingy',
80 maximum_violations_per_document => '2',
85 $config->get_policy_short_name(),
86 'Some::Other::Policy',
87 'Policy short name gets saved.',
90 $config->get_set_themes(),
92 'set_themes gets saved.',
95 $config->get_add_themes(),
97 'add_themes gets saved.',
100 $config->get_severity(),
102 'severity gets saved.',
105 $config->get_maximum_violations_per_document(),
107 'maximum_violations_per_document gets saved.',
110 $config->get('custom_parameter'),
112 'custom_parameter gets saved.',
115 ! $config->is_empty(),
116 'is_empty() is false when there were configuration values.',
119 my @parameter_names = $config->get_parameter_names();
121 scalar @parameter_names,
123 'There is one parameter name left after construction.',
128 'There parameter name is the expected value.',
131 test_standard_parameters_undef_via_get($config);
133 $config->remove('custom_parameter');
136 'is_empty() is true after removing "custom_parameter".',
139 @parameter_names = $config->get_parameter_names();
141 scalar @parameter_names,
143 'There are no parameter names left after removing "custom_parameter".',
148 sub test_standard_parameters_undef_via_get {
150 my $policy_short_name = $config->get_policy_short_name();
152 foreach my $parameter (
157 maximum_violations_per_document
162 $config->get($parameter),
164 qq<"$parameter" is not defined via get() for $policy_short_name.>,
171 #-----------------------------------------------------------------------------
173 # ensure we run true if this test is loaded by
174 # t/01_policy_config.t_without_optional_dependencies.t
179 # cperl-indent-level: 4
181 # indent-tabs-mode: nil
182 # c-indentation-style: bsd
184 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :