stop using Moo as a test package
[catagits/Catalyst-Runtime.git] / t / lib / CDICompatTestPlugin.pm
1 package CDICompatTestPlugin;
2
3 # This plugin specificially tests an edge case of C::D::I compat,
4 # where you load a plugin which creates an accessor with the same
5 # name as a class data accessor (_config in this case)..
6
7 # This is what happens if you use the authentication back-compat
8 # stuff, as C::A::Plugin::Credential::Password is added to the plugin
9 # list, and that uses base C::A::C::P class, does the mk_accessors.
10
11 # If a class data method called _config hasn't been created in 
12 # MyApp ($app below), then our call to ->config gets our accessor
13 # (rather than the class data one), and we fail..
14
15 use strict;
16 use warnings;
17 use base qw/Class::Accessor::Fast/;
18 use MRO::Compat;
19 __PACKAGE__->mk_accessors(qw/_config/);
20
21 sub setup {
22     my $app = shift;
23
24     $app->config;
25     $app->next::method(@_);
26 }
27
28 # However, if we are too enthusiastic about adding accessors to the
29 # MyApp package, then this method isn't called (as there is a local 
30 # symbol already).
31
32 # Note - use a different package here, so that Moose's 
33 # package detection code doesn't get confused..
34 $CDICompatTestPlugin::Data::HAS_RUN_SETUP_FINISHED = 0;
35
36 sub setup_finished {
37     my $app = shift;
38     $CDICompatTestPlugin::Data::HAS_RUN_SETUP_FINISHED = 1;
39     $app->next::method(@_);
40 }
41
42 1;