5 package t::moo::extends_non_moo::base;
8 my ($proto, $args) = @_;
16 package t::moo::extends_non_moo::middle;
17 use base qw(t::moo::extends_non_moo::base);
20 my($class, $app) = @_;
21 $class->new({app => $app})
25 package t::moo::extends_non_moo::moo;
27 extends 't::moo::extends_non_moo::middle';
29 package t::moo::extends_non_moo::moo_with_attr;
31 extends 't::moo::extends_non_moo::middle';
32 has 'attr' => (is=>'ro');
34 package t::moo::extends_non_moo::second_level_moo;
36 extends 't::moo::extends_non_moo::moo_with_attr';
37 has 'attr2' => (is=>'ro');
43 ok $app = t::moo::extends_non_moo::middle->wrap($app),
49 ok $app = t::moo::extends_non_moo::moo->wrap($app),
55 ok $app = t::moo::extends_non_moo::moo_with_attr->wrap($app),
61 ok $app = t::moo::extends_non_moo::second_level_moo->wrap($app),