chmod -x
[gitmo/Mouse.git] / t / 030_roles / failing / 040_role_for_combination.t
CommitLineData
6cfa1e5e 1#!/usr/bin/env perl
2use strict;
3use warnings;
4use Test::More tests => 3;
5
6my $OPTS;
7do {
8 package My::Singleton::Role;
9 use Mouse::Role;
10
11 sub foo { 'My::Singleton::Role' }
12
13 package My::Role::Metaclass;
14 use Mouse;
15 BEGIN { extends 'Mouse::Meta::Role' };
16
17 sub _role_for_combination {
18 my ($self, $opts) = @_;
19 $OPTS = $opts;
20 return My::Singleton::Role->meta;
21 }
22
23 package My::Special::Role;
24 use Mouse::Role -metaclass => 'My::Role::Metaclass';
25
26 sub foo { 'My::Special::Role' }
27
28 package My::Usual::Role;
29 use Mouse::Role;
30
31 sub bar { 'My::Usual::Role' }
32
33 package My::Class;
34 use Mouse;
35
36 with (
37 'My::Special::Role' => { number => 1 },
38 'My::Usual::Role' => { number => 2 },
39 );
40};
41
42is(My::Class->foo, 'My::Singleton::Role', 'role_for_combination applied');
43is(My::Class->bar, 'My::Usual::Role', 'collateral role');
44is_deeply($OPTS, { number => 1 });
45