Modified source files and compiled any and armel versions of packages
[pkg-perl] / deb-src / libperl-critic-perl / libperl-critic-perl-1.088 / t / 14_policy_parameter_behavior_integer.t
1 #!perl
2
3 ##############################################################################
4 #      $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/14_policy_parameter_behavior_integer.t $
5 #     $Date: 2008-06-06 00:48:04 -0500 (Fri, 06 Jun 2008) $
6 #   $Author: clonezone $
7 # $Revision: 2416 $
8 ##############################################################################
9
10 use 5.006001;
11 use strict;
12 use warnings;
13
14 use Test::More tests => 22;
15 use English qw(-no_match_vars);
16
17 use Perl::Critic::Policy;
18 use Perl::Critic::PolicyParameter;
19 use Perl::Critic::Utils qw{ :booleans };
20
21 my $specification;
22 my $parameter;
23 my %config;
24 my $policy;
25
26 $specification =
27     {
28         name        => 'test',
29         description => 'An integer parameter for testing',
30         behavior    => 'integer',
31     };
32
33
34 $parameter = Perl::Critic::PolicyParameter->new($specification);
35 $policy = Perl::Critic::Policy->new();
36 $parameter->parse_and_validate_config_value($policy, \%config);
37 is($policy->{_test}, undef, q{no value, no default});
38
39 $policy = Perl::Critic::Policy->new();
40 $config{test} = '2943';
41 $parameter->parse_and_validate_config_value($policy, \%config);
42 cmp_ok($policy->{_test}, '==', 2943, q{2943, no default});
43
44 $policy = Perl::Critic::Policy->new();
45 $config{test} = '+2943';
46 $parameter->parse_and_validate_config_value($policy, \%config);
47 cmp_ok($policy->{_test}, '==', 2943, q{+2943, no default});
48
49 $policy = Perl::Critic::Policy->new();
50 $config{test} = '-2943';
51 $parameter->parse_and_validate_config_value($policy, \%config);
52 cmp_ok($policy->{_test}, '==', -2943, q{-2943, no default});
53
54 $policy = Perl::Critic::Policy->new();
55 $config{test} = '29_43';
56 $parameter->parse_and_validate_config_value($policy, \%config);
57 cmp_ok($policy->{_test}, '==', 2943, q{29_43, no default});
58
59 $policy = Perl::Critic::Policy->new();
60 $config{test} = '+29_43';
61 $parameter->parse_and_validate_config_value($policy, \%config);
62 cmp_ok($policy->{_test}, '==', 2943, q{+29_43, no default});
63
64 $policy = Perl::Critic::Policy->new();
65 $config{test} = '-29_43';
66 $parameter->parse_and_validate_config_value($policy, \%config);
67 cmp_ok($policy->{_test}, '==', -2943, q{-29_43, no default});
68
69 $policy = Perl::Critic::Policy->new();
70 $config{test} = '0';
71 $parameter->parse_and_validate_config_value($policy, \%config);
72 cmp_ok($policy->{_test}, '==', 0, q{0, no default});
73
74 $policy = Perl::Critic::Policy->new();
75 $config{test} = '1.5';
76 eval { $parameter->parse_and_validate_config_value($policy, \%config); };
77 ok($EVAL_ERROR, q{not an integer});
78
79
80 $specification->{default_string} = '0';
81 delete $config{test};
82
83 $parameter = Perl::Critic::PolicyParameter->new($specification);
84 $policy = Perl::Critic::Policy->new();
85 $parameter->parse_and_validate_config_value($policy, \%config);
86 cmp_ok($policy->{_test}, '==', 0, q{no value, default 0});
87
88 $policy = Perl::Critic::Policy->new();
89 $config{test} = '5';
90 $parameter->parse_and_validate_config_value($policy, \%config);
91 cmp_ok($policy->{_test}, '==', 5, q{5, default 0});
92
93
94 $specification->{integer_minimum} = 0;
95
96 $parameter = Perl::Critic::PolicyParameter->new($specification);
97 $policy = Perl::Critic::Policy->new();
98 $config{test} = '5';
99 $parameter->parse_and_validate_config_value($policy, \%config);
100 cmp_ok($policy->{_test}, '==', 5, q{5, minimum 0});
101
102 $policy = Perl::Critic::Policy->new();
103 $config{test} = '0';
104 $parameter->parse_and_validate_config_value($policy, \%config);
105 cmp_ok($policy->{_test}, '==', 0, q{0, minimum 0});
106
107 $policy = Perl::Critic::Policy->new();
108 $config{test} = '-5';
109 eval { $parameter->parse_and_validate_config_value($policy, \%config); };
110 ok($EVAL_ERROR, q{below minimum});
111
112
113 delete $specification->{integer_minimum};
114 $specification->{integer_maximum} = 0;
115
116 $parameter = Perl::Critic::PolicyParameter->new($specification);
117 $policy = Perl::Critic::Policy->new();
118 $config{test} = '-5';
119 $parameter->parse_and_validate_config_value($policy, \%config);
120 cmp_ok($policy->{_test}, '==', -5, q{-5, maximum 0});
121
122 $policy = Perl::Critic::Policy->new();
123 $config{test} = '0';
124 $parameter->parse_and_validate_config_value($policy, \%config);
125 cmp_ok($policy->{_test}, '==', 0, q{0, maximum 0});
126
127 $policy = Perl::Critic::Policy->new();
128 $config{test} = '5';
129 eval { $parameter->parse_and_validate_config_value($policy, \%config); };
130 ok($EVAL_ERROR, q{above maximum});
131
132
133 $specification->{integer_minimum} = 0;
134 $specification->{integer_maximum} = 5;
135
136 $parameter = Perl::Critic::PolicyParameter->new($specification);
137 $policy = Perl::Critic::Policy->new();
138 $config{test} = '-5';
139 eval { $parameter->parse_and_validate_config_value($policy, \%config); };
140 ok($EVAL_ERROR, q{below minimum of range});
141
142 $policy = Perl::Critic::Policy->new();
143 $config{test} = '0';
144 $parameter->parse_and_validate_config_value($policy, \%config);
145 cmp_ok($policy->{_test}, '==', 0, q{0, minimum 0, maximum 5});
146
147 $policy = Perl::Critic::Policy->new();
148 $config{test} = '3';
149 $parameter->parse_and_validate_config_value($policy, \%config);
150 cmp_ok($policy->{_test}, '==', 3, q{3, minimum 0, maximum 5});
151
152 $policy = Perl::Critic::Policy->new();
153 $config{test} = '5';
154 $parameter->parse_and_validate_config_value($policy, \%config);
155 cmp_ok($policy->{_test}, '==', 5, q{5, minimum 0, maximum 5});
156
157 $policy = Perl::Critic::Policy->new();
158 $config{test} = '10';
159 eval { $parameter->parse_and_validate_config_value($policy, \%config); };
160 ok($EVAL_ERROR, q{above maximum of range});
161
162 ###############################################################################
163 # Local Variables:
164 #   mode: cperl
165 #   cperl-indent-level: 4
166 #   fill-column: 78
167 #   indent-tabs-mode: nil
168 #   c-indentation-style: bsd
169 # End:
170 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :