Remove numbers from our tests
[gitmo/Moose.git] / t / roles / role_for_combination.t
diff --git a/t/roles/role_for_combination.t b/t/roles/role_for_combination.t
new file mode 100644 (file)
index 0000000..3a297ea
--- /dev/null
@@ -0,0 +1,46 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+my $OPTS;
+do {
+    package My::Singleton::Role;
+    use Moose::Role;
+
+    sub foo { 'My::Singleton::Role' }
+
+    package My::Role::Metaclass;
+    use Moose;
+    BEGIN { extends 'Moose::Meta::Role' };
+
+    sub _role_for_combination {
+        my ($self, $opts) = @_;
+        $OPTS = $opts;
+        return My::Singleton::Role->meta;
+    }
+
+    package My::Special::Role;
+    use Moose::Role -metaclass => 'My::Role::Metaclass';
+
+    sub foo { 'My::Special::Role' }
+
+    package My::Usual::Role;
+    use Moose::Role;
+
+    sub bar { 'My::Usual::Role' }
+
+    package My::Class;
+    use Moose;
+
+    with (
+        'My::Special::Role' => { number => 1 },
+        'My::Usual::Role' => { number => 2 },
+    );
+};
+
+is(My::Class->foo, 'My::Singleton::Role', 'role_for_combination applied');
+is(My::Class->bar, 'My::Usual::Role', 'collateral role');
+is_deeply($OPTS, { number => 1 });
+
+done_testing;