Remove numbers from our tests
[gitmo/Moose.git] / t / roles / method_modifiers.t
diff --git a/t/roles/method_modifiers.t b/t/roles/method_modifiers.t
new file mode 100644 (file)
index 0000000..4b4bca3
--- /dev/null
@@ -0,0 +1,90 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+use Test::Fatal;
+
+my $FooRole;
+{
+    package Foo::Role;
+    use Moose::Role;
+    after foo => sub { $FooRole++ };
+}
+
+{
+    package Foo;
+    use Moose;
+    with 'Foo::Role';
+    sub foo { }
+}
+
+Foo->foo;
+is($FooRole, 1, "modifier called");
+
+my $BarRole;
+{
+    package Bar::Role;
+    use Moose::Role;
+    after ['foo', 'bar'] => sub { $BarRole++ };
+}
+
+{
+    package Bar;
+    use Moose;
+    with 'Bar::Role';
+    sub foo { }
+    sub bar { }
+}
+
+Bar->foo;
+is($BarRole, 1, "modifier called");
+Bar->bar;
+is($BarRole, 2, "modifier called");
+
+my $BazRole;
+{
+    package Baz::Role;
+    use Moose::Role;
+    after 'foo', 'bar' => sub { $BazRole++ };
+}
+
+{
+    package Baz;
+    use Moose;
+    with 'Baz::Role';
+    sub foo { }
+    sub bar { }
+}
+
+Baz->foo;
+is($BazRole, 1, "modifier called");
+Baz->bar;
+is($BazRole, 2, "modifier called");
+
+my $QuuxRole;
+{
+    package Quux::Role;
+    use Moose::Role;
+    { our $TODO; local $TODO = "can't handle regexes yet";
+    ::is( ::exception {
+        after qr/foo|bar/ => sub { $QuuxRole++ }
+    }, undef );
+    }
+}
+
+{
+    package Quux;
+    use Moose;
+    with 'Quux::Role';
+    sub foo { }
+    sub bar { }
+}
+
+{ local $TODO = "can't handle regexes yet";
+Quux->foo;
+is($QuuxRole, 1, "modifier called");
+Quux->bar;
+is($QuuxRole, 2, "modifier called");
+}
+
+done_testing;