#!perl
use
5.006001;
our
$VERSION
=
'1.101_003'
;
my
$specification
;
my
$parameter
;
my
%config
;
my
$policy
;
$specification
=
{
name
=>
'test'
,
description
=>
'A string parameter for testing'
,
behavior
=>
'string'
,
};
$parameter
= Perl::Critic::PolicyParameter->new(
$specification
);
$policy
= Perl::Critic::Policy->new();
$parameter
->parse_and_validate_config_value(
$policy
, \
%config
);
is(
$policy
->{_test},
undef
,
q{no value, no default}
);
$policy
= Perl::Critic::Policy->new();
$config
{test} =
'foobie'
;
$parameter
->parse_and_validate_config_value(
$policy
, \
%config
);
is(
$policy
->{_test},
'foobie'
,
q{'foobie', no default}
);
$specification
->{default_string} =
'bletch'
;
delete
$config
{test};
$parameter
= Perl::Critic::PolicyParameter->new(
$specification
);
$policy
= Perl::Critic::Policy->new();
$parameter
->parse_and_validate_config_value(
$policy
, \
%config
);
is(
$policy
->{_test},
'bletch'
,
q{no value, default 'bletch'}
);
$policy
= Perl::Critic::Policy->new();
$config
{test} =
'foobie'
;
$parameter
->parse_and_validate_config_value(
$policy
, \
%config
);
is(
$policy
->{_test},
'foobie'
,
q{'foobie', default 'bletch'}
);