More CDI related fail
[catagits/Catalyst-Runtime.git] / t / cdi_backcompat_plugin_accessor_override.t
CommitLineData
85781ad7 1use strict;
2use warnings;
3use lib 't/lib';
4
df3ea11b 5use Test::More tests => 2;
85781ad7 6use Test::Exception;
7
8# Force a stack trace.
9use Carp;
10$SIG{__DIE__} = \&Carp::confess;
11
12{
13 package CDICompatTestApp;
14 use Catalyst qw/
15 +CDICompatTestPlugin
16 /;
17 # Calling ->config here (before we call setup). With CDI/Cat 5.70 this
18 # causes *CDICompatTestApp::_config to have a class data accessor created.
19
20 # If this doesn't happen, then later when we've added CDICompatTestPlugin
21 # to @ISA, we fail in the overridden ->setup method when we call ->config
22 # again, as we get the CAF accessor from CDICompatTestPlugin, not the one
23 # created in this package as a side-effect of this call. :-(
24 __PACKAGE__->config;
25}
26
8a440eba 27lives_ok {
28 CDICompatTestApp->setup;
29} 'Setup app with plugins which says use base qw/Class::Accessor::Fast/';
30
df3ea11b 31# And the plugin's setup_finished method should have been run, as accessors
32# are not created in MyApp until the data is written to.
33TODO: {
34 local $TODO = "Copying the class data accessor down into MyApp other than at runtime\n" .
35 " when assigned (as pre exact CDI behavior) causes methods to not get run';
36 no warnings 'once';
37 is $CDICompatTestPlugin::Data::HAS_RUN_SETUP_FINISHED, 1, 'Plugin setup_finish run';
38}