1 # See https://rt.cpan.org/Ticket/Display.html?id=46347
2 # This is automatically generated by author/import-moose-test.pl.
3 # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
4 use t::lib::MooseCompat;
15 requires 'test_output';
21 has test_output => ( is => 'rw' );
35 has test_output => ( is => 'rw' );
47 has test_output => ( is => 'rw' );
56 # Roles providing attributes/methods should satisfy requires() of other
59 local $TODO = "role attributes don't satisfy method requirements";
60 lives_ok { package My::Test1; use Mouse; with 'My::Role2'; }
61 'role2(provides attribute) consumes role1';
64 lives_ok { package My::Test2; use Mouse; with 'My::Role3'; }
65 'role3(provides method) consumes role1';
67 # As I understand the design, Roles composed in the same with() statement
68 # should NOT demonstrate ordering dependency. Alter these tests if that
69 # assumption is false. -Vince Veselosky
71 local $TODO = "role attributes don't satisfy method requirements";
72 lives_ok { package My::Test3; use Mouse; with 'My::Role4', 'My::Role1'; }
73 'class consumes role4(provides attribute), role1';
77 local $TODO = "role attributes don't satisfy method requirements";
78 lives_ok { package My::Test4; use Mouse; with 'My::Role1', 'My::Role4'; }
79 'class consumes role1, role4(provides attribute)';
82 lives_ok { package My::Test5; use Mouse; with 'My::Role5', 'My::Role1'; }
83 'class consumes role5(provides method), role1';
85 lives_ok { package My::Test6; use Mouse; with 'My::Role1', 'My::Role5'; }
86 'class consumes role1, role5(provides method)';
88 # Inherited methods/attributes should satisfy requires(), as long as
89 # extends() comes first in code order.
96 'class extends base1(provides attribute), consumes role1';
104 'class extends base2(provides method), consumes role1';
106 # Attributes/methods implemented in class should satisfy requires()
111 has 'test_output', is => 'rw';
114 'class provides attribute, consumes role1';
123 'class provides method, consumes role1';
125 # Roles composed in separate with() statements SHOULD demonstrate ordering
126 # dependency. See comment with tests 3-6 above.
133 'class consumes role4(provides attribute); consumes role1';
135 dies_ok { package My::Test12; use Mouse; with 'My::Role1'; with 'My::Role4'; }
136 'class consumes role1; consumes role4(provides attribute)';
144 'class consumes role5(provides method); consumes role1';
146 dies_ok { package My::Test14; use Mouse; with 'My::Role1'; with 'My::Role5'; }
147 'class consumes role1; consumes role5(provides method)';