Modified source files and compiled any and armel versions of packages
[pkg-perl] / deb-src / libperl-critic-perl / libperl-critic-perl-1.088 / t / 04_optionsprocessor.t
1 #!perl
2
3 ##############################################################################
4 #     $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/04_optionsprocessor.t $
5 #    $Date: 2008-06-08 20:41:30 -0500 (Sun, 08 Jun 2008) $
6 #   $Author: clonezone $
7 # $Revision: 2430 $
8 ##############################################################################
9
10 use 5.006001;
11 use strict;
12 use warnings;
13
14 use English qw(-no_match_vars);
15
16 use Perl::Critic::OptionsProcessor;
17
18 use Test::More tests => 24;
19
20 #-----------------------------------------------------------------------------
21
22 {
23     my $processor = Perl::Critic::OptionsProcessor->new();
24     is($processor->force(),    0,           'native default force');
25     is($processor->only(),     0,           'native default only');
26     is($processor->severity(), 5,           'native default severity');
27     is($processor->theme(),    q{},         'native default theme');
28     is($processor->top(),      0,           'native default top');
29     is($processor->color(),    1,           'native default color');
30     is($processor->verbose(),  4,           'native default verbose');
31     is($processor->criticism_fatal,   0,    'native default criticism-fatal');
32     is_deeply($processor->include(), [],    'native default include');
33     is_deeply($processor->exclude(), [],    'native default exclude');
34 }
35
36 #-----------------------------------------------------------------------------
37
38 {
39     my %user_defaults = (
40          force     => 1,
41          only      => 1,
42          severity  => 4,
43          theme     => 'pbp',
44          top       => 50,
45          color     => 0,
46          verbose   => 7,
47          'criticism-fatal'   => 1,
48          include   => 'foo bar',
49          exclude   => 'baz nuts',
50     );
51
52     my $processor = Perl::Critic::OptionsProcessor->new( %user_defaults );
53     is($processor->force(),    1,           'user default force');
54     is($processor->only(),     1,           'user default only');
55     is($processor->severity(), 4,           'user default severity');
56     is($processor->theme(),    'pbp',       'user default theme');
57     is($processor->top(),      50,          'user default top');
58     is($processor->color(),    0,           'user default color');
59     is($processor->verbose(),  7,           'user default verbose');
60     is($processor->criticism_fatal(),  1,   'user default criticism_fatal');
61     is_deeply($processor->include(), [ qw(foo bar) ], 'user default include');
62     is_deeply($processor->exclude(), [ qw(baz nuts)], 'user default exclude');
63 }
64
65 #-----------------------------------------------------------------------------
66
67 {
68     my $processor = Perl::Critic::OptionsProcessor->new( 'colour' => 1 );
69     is($processor->color(), 1, 'user default colour true');
70
71     $processor = Perl::Critic::OptionsProcessor->new( 'colour' => 0 );
72     is($processor->color(), 0, 'user default colour false');
73 }
74
75 #-----------------------------------------------------------------------------
76 # Test exception handling
77
78 {
79     my %invalid_defaults = (
80         foo => 1,
81         bar => 2,
82     );
83
84     eval { Perl::Critic::OptionsProcessor->new( %invalid_defaults ) };
85     like( $EVAL_ERROR, qr/"foo" is not a supported option/m, 'First invalid default' );
86     like( $EVAL_ERROR, qr/"bar" is not a supported option/m, 'Second invalid default' );
87
88 }
89
90 #-----------------------------------------------------------------------------
91
92 # ensure we run true if this test is loaded by
93 # t/04_defaults.t_without_optional_dependencies.t
94 1;
95
96 ##############################################################################
97 # Local Variables:
98 #   mode: cperl
99 #   cperl-indent-level: 4
100 #   fill-column: 78
101 #   indent-tabs-mode: nil
102 #   c-indentation-style: bsd
103 # End:
104 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :