diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-09-04 19:38:21 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-09-04 19:47:11 -0400 |
commit | 8bf5e6931a1bd96df0cdb1ceb94bbb3e578a8126 (patch) | |
tree | 2e659a8f07ea1cca3091a9c0578bbd8e53c20c11 /t/no-new-constructor-error.t | |
parent | 8e0b4f219f2d8d94cb6937ef47168ac5fac03cd9 (diff) | |
download | moosex-nonmoose-8bf5e6931a1bd96df0cdb1ceb94bbb3e578a8126.tar.gz moosex-nonmoose-8bf5e6931a1bd96df0cdb1ceb94bbb3e578a8126.zip |
packaging
Diffstat (limited to 't/no-new-constructor-error.t')
-rw-r--r-- | t/no-new-constructor-error.t | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/t/no-new-constructor-error.t b/t/no-new-constructor-error.t new file mode 100644 index 0000000..2becbce --- /dev/null +++ b/t/no-new-constructor-error.t @@ -0,0 +1,43 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +{ + package NonMoose; + sub create { bless {}, shift } + sub DESTROY { } +} + +{ + package Child; + use Moose; + use MooseX::NonMoose; + extends 'NonMoose'; + { + my $warning; + local $SIG{__WARN__} = sub { $warning = $_[0] }; + __PACKAGE__->meta->make_immutable; + ::like( + $warning, + qr/Not inlining.*doesn't contain a constructor named 'new'/, + "warning when trying to make_immutable without a superclass 'new'" + ); + } +} + +{ + package ChildTwo; + use Moose; + use MooseX::NonMoose; + extends 'NonMoose'; + { + my $warning; + local $SIG{__WARN__} = sub { $warning = $_[0] }; + __PACKAGE__->meta->make_immutable(inline_constructor => 0); + ::is($warning, undef, + "no warning when trying to make_immutable(inline_constructor => 0) without a superclass 'new'"); + } +} + +done_testing; |