#!perl
BEGIN {
use_ok(
'Perl::Critic::PolicyConfig'
) or confess
'No point in continuing.'
;
}
{
my
$config
=
Perl::Critic::PolicyConfig->new(
'Some::Policy'
);
is(
$config
->get_policy_short_name(),
'Some::Policy'
,
'Policy short name gets saved.'
,
);
is(
$config
->get_set_themes(),
undef
,
'set_themes is undef when not specified.'
,
);
is(
$config
->get_add_themes(),
undef
,
'add_themes is undef when not specified.'
,
);
is(
$config
->get_severity(),
undef
,
'severity is undef when not specified.'
,
);
is(
$config
->get_maximum_violations_per_document(),
undef
,
'maximum_violations_per_document is undef when not specified.'
,
);
ok(
$config
->is_empty(),
'is_empty() is true when there were no configuration values.'
,
);
my
@parameter_names
=
$config
->get_parameter_names();
is(
scalar
@parameter_names
,
0,
'There are no parameter names left.'
,
);
test_standard_parameters_undef_via_get(
$config
);
}
{
my
$config
=
Perl::Critic::PolicyConfig->new(
'Some::Other::Policy'
,
{
custom_parameter
=>
'blargh'
,
set_themes
=>
'thingy'
,
add_themes
=>
'another thingy'
,
severity
=>
'harsh'
,
maximum_violations_per_document
=>
'2'
,
}
);
is(
$config
->get_policy_short_name(),
'Some::Other::Policy'
,
'Policy short name gets saved.'
,
);
is(
$config
->get_set_themes(),
'thingy'
,
'set_themes gets saved.'
,
);
is(
$config
->get_add_themes(),
'another thingy'
,
'add_themes gets saved.'
,
);
is(
$config
->get_severity(),
'harsh'
,
'severity gets saved.'
,
);
is(
$config
->get_maximum_violations_per_document(),
'2'
,
'maximum_violations_per_document gets saved.'
,
);
is(
$config
->get(
'custom_parameter'
),
'blargh'
,
'custom_parameter gets saved.'
,
);
ok(
!
$config
->is_empty(),
'is_empty() is false when there were configuration values.'
,
);
my
@parameter_names
=
$config
->get_parameter_names();
is(
scalar
@parameter_names
,
1,
'There is one parameter name left after construction.'
,
);
is(
$parameter_names
[0],
'custom_parameter'
,
'There parameter name is the expected value.'
,
);
test_standard_parameters_undef_via_get(
$config
);
$config
->remove(
'custom_parameter'
);
ok(
$config
->is_empty(),
'is_empty() is true after removing "custom_parameter".'
,
);
@parameter_names
=
$config
->get_parameter_names();
is(
scalar
@parameter_names
,
0,
'There are no parameter names left after removing "custom_parameter".'
,
);
}
sub
test_standard_parameters_undef_via_get {
my
(
$config
) =
@_
;
my
$policy_short_name
=
$config
->get_policy_short_name();
foreach
my
$parameter
(
qw<
set_themes
add_themes
severity
maximum_violations_per_document
_non_public_data
>
) {
is(
$config
->get(
$parameter
),
undef
,
qq<"$parameter" is not defined via get() for $policy_short_name.>
,
)
}
return
;
}
1;