Perltidy this code a bit.
[gitmo/Moose.git] / t / 030_roles / 020_role_composite.t
CommitLineData
fb1e11d5 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
28412c0b 6use Test::More tests => 17;
fb1e11d5 7use Test::Exception;
8
9BEGIN {
10 use_ok('Moose');
11 use_ok('Moose::Meta::Role::Application::RoleSummation');
12 use_ok('Moose::Meta::Role::Composite');
13}
14
15{
16 package Role::Foo;
17 use Moose::Role;
18
19 package Role::Bar;
20 use Moose::Role;
21
22 package Role::Baz;
3e19778d 23 use Moose::Role;
24
25 package Role::Gorch;
26 use Moose::Role;
fb1e11d5 27}
28
29{
30 my $c = Moose::Meta::Role::Composite->new(
31 roles => [
32 Role::Foo->meta,
33 Role::Bar->meta,
34 Role::Baz->meta,
35 ]
36 );
37 isa_ok($c, 'Moose::Meta::Role::Composite');
38
39 is($c->name, 'Role::Foo|Role::Bar|Role::Baz', '... got the composite role name');
40
41 is_deeply($c->get_roles, [
42 Role::Foo->meta,
43 Role::Bar->meta,
44 Role::Baz->meta,
45 ], '... got the right roles');
46
c4538447 47 ok($c->does_role($_), '... our composite does the role ' . $_)
48 for qw(
49 Role::Foo
50 Role::Bar
51 Role::Baz
52 );
53
fb1e11d5 54 lives_ok {
55 Moose::Meta::Role::Application::RoleSummation->new->apply($c);
3e19778d 56 } '... this composed okay';
57
58 ##... now nest 'em
59 {
60 my $c2 = Moose::Meta::Role::Composite->new(
61 roles => [
62 $c,
63 Role::Gorch->meta,
64 ]
65 );
66 isa_ok($c2, 'Moose::Meta::Role::Composite');
67
68 is($c2->name, 'Role::Foo|Role::Bar|Role::Baz|Role::Gorch', '... got the composite role name');
69
70 is_deeply($c2->get_roles, [
71 $c,
72 Role::Gorch->meta,
73 ], '... got the right roles');
74
75 ok($c2->does_role($_), '... our composite does the role ' . $_)
76 for qw(
77 Role::Foo
78 Role::Bar
79 Role::Baz
80 Role::Gorch
81 );
82 }
fb1e11d5 83}