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
{
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__->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;