diff options
Diffstat (limited to 't/exceptions/traits.t')
-rw-r--r-- | t/exceptions/traits.t | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/t/exceptions/traits.t b/t/exceptions/traits.t new file mode 100644 index 0000000..2d2fad0 --- /dev/null +++ b/t/exceptions/traits.t @@ -0,0 +1,34 @@ +use strict; +use warnings; + +use Test::More; +use Test::Fatal; + +# this test taken from MooseX::ABC t/immutable.t, where it broke with Moose 2.1207 + +{ + package ABC; + use Moose::Role; + around new => sub { + my $orig = shift; + my $class = shift; + my $meta = Class::MOP::class_of($class); + $meta->throw_error("$class is abstract, it cannot be instantiated"); + $class->$orig(@_); + }; +} +{ + package MyApp::Base; + use Moose; + with 'ABC'; + __PACKAGE__->meta->make_immutable(inline_constructor => 0); +} + + +like( + exception { MyApp::Base->new }, + qr/MyApp::Base is abstract, it cannot be instantiated/, + 'instantiating abstract classes fails', +); + +done_testing; |