Fix failng tests
[gitmo/Mouse.git] / Moose-t-failing / 030_roles / 025_role_composition_override.t
CommitLineData
67199842 1#!/usr/bin/perl
c47cf415 2# This is automatically generated by author/import-moose-test.pl.
3# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
4use t::lib::MooseCompat;
67199842 5
6use strict;
7use warnings;
8
c47cf415 9use Test::More;
10$TODO = q{Mouse is not yet completed};
67199842 11use Test::Exception;
12
c47cf415 13use Mouse::Meta::Role::Application;
67199842 14use Mouse::Meta::Role::Composite;
15
16{
17 package Role::Foo;
18 use Mouse::Role;
6cfa1e5e 19
67199842 20 override foo => sub { 'Role::Foo::foo' };
6cfa1e5e 21
67199842 22 package Role::Bar;
23 use Mouse::Role;
24
25 override bar => sub { 'Role::Bar::bar' };
6cfa1e5e 26
67199842 27 package Role::FooConflict;
6cfa1e5e 28 use Mouse::Role;
29
67199842 30 override foo => sub { 'Role::FooConflict::foo' };
6cfa1e5e 31
67199842 32 package Role::FooMethodConflict;
6cfa1e5e 33 use Mouse::Role;
34
35 sub foo { 'Role::FooConflict::foo' }
36
67199842 37 package Role::BarMethodConflict;
38 use Mouse::Role;
6cfa1e5e 39
67199842 40 sub bar { 'Role::BarConflict::bar' }
41}
42
43# test simple overrides
44{
45 my $c = Mouse::Meta::Role::Composite->new(
46 roles => [
47 Role::Foo->meta,
48 Role::Bar->meta,
49 ]
50 );
51 isa_ok($c, 'Mouse::Meta::Role::Composite');
52
6cfa1e5e 53 is($c->name, 'Role::Foo|Role::Bar', '... got the composite role name');
54
67199842 55 lives_ok {
c47cf415 56 Mouse::Meta::Role::Application->new->apply($c);
6cfa1e5e 57 } '... this lives ok';
58
67199842 59 is_deeply(
60 [ sort $c->get_method_modifier_list('override') ],
61 [ 'bar', 'foo' ],
62 '... got the right list of methods'
63 );
64}
65
66# test simple overrides w/ conflicts
67dies_ok {
c47cf415 68 Mouse::Meta::Role::Application->new->apply(
67199842 69 Mouse::Meta::Role::Composite->new(
70 roles => [
71 Role::Foo->meta,
72 Role::FooConflict->meta,
73 ]
74 )
75 );
76} '... this fails as expected';
77
78# test simple overrides w/ conflicts
79dies_ok {
c47cf415 80 Mouse::Meta::Role::Application->new->apply(
6cfa1e5e 81 Mouse::Meta::Role::Composite->new(
67199842 82 roles => [
83 Role::Foo->meta,
84 Role::FooMethodConflict->meta,
85 ]
86 )
87 );
88} '... this fails as expected';
89
90
91# test simple overrides w/ conflicts
92dies_ok {
c47cf415 93 Mouse::Meta::Role::Application->new->apply(
67199842 94 Mouse::Meta::Role::Composite->new(
95 roles => [
96 Role::Foo->meta,
6cfa1e5e 97 Role::Bar->meta,
98 Role::FooConflict->meta,
67199842 99 ]
100 )
101 );
102} '... this fails as expected';
103
104
105# test simple overrides w/ conflicts
106dies_ok {
c47cf415 107 Mouse::Meta::Role::Application->new->apply(
6cfa1e5e 108 Mouse::Meta::Role::Composite->new(
67199842 109 roles => [
110 Role::Foo->meta,
6cfa1e5e 111 Role::Bar->meta,
112 Role::FooMethodConflict->meta,
67199842 113 ]
114 )
115 );
116} '... this fails as expected';
c47cf415 117
118done_testing;