Build all packages removed dependencies of libtest-exception-perl libtest-warn-perl...
[dh-make-perl] / dev / i386 / libperl-critic-perl / libperl-critic-perl-1.088 / t / 04_optionsprocessor.t
diff --git a/dev/i386/libperl-critic-perl/libperl-critic-perl-1.088/t/04_optionsprocessor.t b/dev/i386/libperl-critic-perl/libperl-critic-perl-1.088/t/04_optionsprocessor.t
new file mode 100644 (file)
index 0000000..19f1cbe
--- /dev/null
@@ -0,0 +1,104 @@
+#!perl
+
+##############################################################################
+#     $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/04_optionsprocessor.t $
+#    $Date: 2008-06-08 20:41:30 -0500 (Sun, 08 Jun 2008) $
+#   $Author: clonezone $
+# $Revision: 2430 $
+##############################################################################
+
+use 5.006001;
+use strict;
+use warnings;
+
+use English qw(-no_match_vars);
+
+use Perl::Critic::OptionsProcessor;
+
+use Test::More tests => 24;
+
+#-----------------------------------------------------------------------------
+
+{
+    my $processor = Perl::Critic::OptionsProcessor->new();
+    is($processor->force(),    0,           'native default force');
+    is($processor->only(),     0,           'native default only');
+    is($processor->severity(), 5,           'native default severity');
+    is($processor->theme(),    q{},         'native default theme');
+    is($processor->top(),      0,           'native default top');
+    is($processor->color(),    1,           'native default color');
+    is($processor->verbose(),  4,           'native default verbose');
+    is($processor->criticism_fatal,   0,    'native default criticism-fatal');
+    is_deeply($processor->include(), [],    'native default include');
+    is_deeply($processor->exclude(), [],    'native default exclude');
+}
+
+#-----------------------------------------------------------------------------
+
+{
+    my %user_defaults = (
+         force     => 1,
+         only      => 1,
+         severity  => 4,
+         theme     => 'pbp',
+         top       => 50,
+         color     => 0,
+         verbose   => 7,
+         'criticism-fatal'   => 1,
+         include   => 'foo bar',
+         exclude   => 'baz nuts',
+    );
+
+    my $processor = Perl::Critic::OptionsProcessor->new( %user_defaults );
+    is($processor->force(),    1,           'user default force');
+    is($processor->only(),     1,           'user default only');
+    is($processor->severity(), 4,           'user default severity');
+    is($processor->theme(),    'pbp',       'user default theme');
+    is($processor->top(),      50,          'user default top');
+    is($processor->color(),    0,           'user default color');
+    is($processor->verbose(),  7,           'user default verbose');
+    is($processor->criticism_fatal(),  1,   'user default criticism_fatal');
+    is_deeply($processor->include(), [ qw(foo bar) ], 'user default include');
+    is_deeply($processor->exclude(), [ qw(baz nuts)], 'user default exclude');
+}
+
+#-----------------------------------------------------------------------------
+
+{
+    my $processor = Perl::Critic::OptionsProcessor->new( 'colour' => 1 );
+    is($processor->color(), 1, 'user default colour true');
+
+    $processor = Perl::Critic::OptionsProcessor->new( 'colour' => 0 );
+    is($processor->color(), 0, 'user default colour false');
+}
+
+#-----------------------------------------------------------------------------
+# Test exception handling
+
+{
+    my %invalid_defaults = (
+        foo => 1,
+        bar => 2,
+    );
+
+    eval { Perl::Critic::OptionsProcessor->new( %invalid_defaults ) };
+    like( $EVAL_ERROR, qr/"foo" is not a supported option/m, 'First invalid default' );
+    like( $EVAL_ERROR, qr/"bar" is not a supported option/m, 'Second invalid default' );
+
+}
+
+#-----------------------------------------------------------------------------
+
+# ensure we run true if this test is loaded by
+# t/04_defaults.t_without_optional_dependencies.t
+1;
+
+##############################################################################
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 78
+#   indent-tabs-mode: nil
+#   c-indentation-style: bsd
+# End:
+# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :