X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fplugin_new_method_backcompat.t;h=c0cb13a6bb6450ba12cb7b75ef993a9bb572e49a;hb=3453aef8adb75e439e4c05e89b6e2d193f148cd9;hp=d7778b8c12291cc676fd4f518c37e09b8f4a6ed7;hpb=6a8f85af6d0032d3f6aecc0ce9420ceb523910b2;p=catagits%2FCatalyst-Runtime.git diff --git a/t/plugin_new_method_backcompat.t b/t/plugin_new_method_backcompat.t index d7778b8..c0cb13a 100644 --- a/t/plugin_new_method_backcompat.t +++ b/t/plugin_new_method_backcompat.t @@ -8,23 +8,22 @@ # that plugins don't get it wrong for us. # Also tests method modifiers and etc in MyApp.pm still work as expected. -use Test::More tests => 4; +use Test::More tests => 8; use Test::Exception; +use Moose::Util qw/find_meta/; use FindBin; use lib "$FindBin::Bin/lib"; use Catalyst::Test qw/TestAppPluginWithConstructor/; -ok request('/foo')->is_success; -is $TestAppPluginWithConstructor::MODIFIER_FIRED, 1, 'Before modifier was fired correctly.'; - -throws_ok { - package TestAppBadlyImmutable; - use Catalyst qw/+TestPluginWithConstructor/; +ok find_meta('TestAppPluginWithConstructor')->is_immutable, + 'Am immutable after use'; - TestAppBadlyImmutable->setup; +ok request('/foo')->is_success, 'Can get /foo'; +is $TestAppPluginWithConstructor::MODIFIER_FIRED, 1, 'Before modifier was fired correctly.'; - __PACKAGE__->meta->make_immutable( inline_constructor => 0 ); -} - qr/\QYou made your application class (TestAppBadlyImmutable) immutable/, - 'An application class that is already immutable but does not inline the constructor dies at ->setup'; +my $warning; +local $SIG{__WARN__} = sub { $warning = $_[0] }; +eval "use TestAppBadlyImmutable;"; +like $warning, qr/\QYou made your application class (TestAppBadlyImmutable) immutable/, + 'An application class that is already immutable but does not inline the constructor warns at ->setup';