Cleanup failing tests
[gitmo/Mouse.git] / Moose-t-failing / 030_roles / 023_role_composition_attributes.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;
6cfa1e5e 18 use Mouse::Role;
67199842 19 has 'foo' => (is => 'rw');
6cfa1e5e 20
67199842 21 package Role::Bar;
22 use Mouse::Role;
23 has 'bar' => (is => 'rw');
6cfa1e5e 24
67199842 25 package Role::FooConflict;
6cfa1e5e 26 use Mouse::Role;
67199842 27 has 'foo' => (is => 'rw');
6cfa1e5e 28
67199842 29 package Role::BarConflict;
30 use Mouse::Role;
31 has 'bar' => (is => 'rw');
6cfa1e5e 32
67199842 33 package Role::AnotherFooConflict;
6cfa1e5e 34 use Mouse::Role;
67199842 35 with 'Role::FooConflict';
36}
37
38# test simple attributes
39{
40 my $c = Mouse::Meta::Role::Composite->new(
41 roles => [
42 Role::Foo->meta,
43 Role::Bar->meta,
44 ]
45 );
46 isa_ok($c, 'Mouse::Meta::Role::Composite');
47
6cfa1e5e 48 is($c->name, 'Role::Foo|Role::Bar', '... got the composite role name');
49
67199842 50 lives_ok {
c47cf415 51 Mouse::Meta::Role::Application->new->apply($c);
6cfa1e5e 52 } '... this succeeds as expected';
53
67199842 54 is_deeply(
55 [ sort $c->get_attribute_list ],
56 [ 'bar', 'foo' ],
57 '... got the right list of attributes'
58 );
59}
60
61# test simple conflict
62dies_ok {
c47cf415 63 Mouse::Meta::Role::Application->new->apply(
67199842 64 Mouse::Meta::Role::Composite->new(
65 roles => [
66 Role::Foo->meta,
67 Role::FooConflict->meta,
68 ]
69 )
70 );
71} '... this fails as expected';
72
73# test complex conflict
74dies_ok {
c47cf415 75 Mouse::Meta::Role::Application->new->apply(
67199842 76 Mouse::Meta::Role::Composite->new(
77 roles => [
78 Role::Foo->meta,
6cfa1e5e 79 Role::Bar->meta,
67199842 80 Role::FooConflict->meta,
6cfa1e5e 81 Role::BarConflict->meta,
67199842 82 ]
83 )
84 );
85} '... this fails as expected';
86
87# test simple conflict
88dies_ok {
c47cf415 89 Mouse::Meta::Role::Application->new->apply(
67199842 90 Mouse::Meta::Role::Composite->new(
91 roles => [
92 Role::Foo->meta,
93 Role::AnotherFooConflict->meta,
94 ]
95 )
96 );
97} '... this fails as expected';
98
c47cf415 99done_testing;