Mouse::Role improved
[gitmo/Mouse.git] / t / 030_roles / failing / 043_conflict_many_methods.t
diff --git a/t/030_roles/failing/043_conflict_many_methods.t b/t/030_roles/failing/043_conflict_many_methods.t
new file mode 100755 (executable)
index 0000000..b8eb2c9
--- /dev/null
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+use Test::More tests => 2;
+use Test::Exception;
+
+{
+    package Bomb;
+    use Mouse::Role;
+
+    sub fuse { }
+    sub explode { }
+
+    package Spouse;
+    use Mouse::Role;
+
+    sub fuse { }
+    sub explode { }
+
+    package Caninish;
+    use Mouse::Role;
+
+    sub bark { }
+
+    package Treeve;
+    use Mouse::Role;
+
+    sub bark { }
+}
+
+package PracticalJoke;
+use Mouse;
+
+::throws_ok {
+    with 'Bomb', 'Spouse';
+} qr/Due to method name conflicts in roles 'Bomb' and 'Spouse', the methods 'explode' and 'fuse' must be implemented or excluded by 'PracticalJoke'/;
+
+::throws_ok {
+    with (
+        'Bomb', 'Spouse',
+        'Caninish', 'Treeve',
+    );
+} qr/Due to a method name conflict in roles 'Caninish' and 'Treeve', the method 'bark' must be implemented or excluded by 'PracticalJoke'/;
+