summaryrefslogtreecommitdiff
path: root/t/basics/buildargs_warning.t
diff options
context:
space:
mode:
Diffstat (limited to 't/basics/buildargs_warning.t')
-rw-r--r--t/basics/buildargs_warning.t32
1 files changed, 32 insertions, 0 deletions
diff --git a/t/basics/buildargs_warning.t b/t/basics/buildargs_warning.t
new file mode 100644
index 0000000..5b1a415
--- /dev/null
+++ b/t/basics/buildargs_warning.t
@@ -0,0 +1,32 @@
+use strict;
+use warnings;
+
+use Test::Fatal;
+use Test::More;
+use Test::Moose qw( with_immutable );
+
+use Test::Requires 'Test::Output';
+
+{
+ package Baz;
+ use Moose;
+}
+
+with_immutable {
+ is( exception {
+ stderr_like { Baz->new( x => 42, 'y' ) }
+ qr{\QThe new() method for Baz expects a hash reference or a key/value list. You passed an odd number of arguments at $0 line \E\d+},
+ 'warning when passing an odd number of args to new()';
+
+ stderr_unlike { Baz->new( x => 42, 'y' ) }
+ qr{\QOdd number of elements in anonymous hash},
+ 'we suppress the standard warning from Perl for an odd number of elements in a hash';
+
+ stderr_is { Baz->new( { x => 42 } ) }
+ q{},
+ 'we handle a single hashref to new without errors';
+ }, undef );
+}
+'Baz';
+
+done_testing;