Composing 2 moo roles into a Moose class is broken
[gitmo/Moo.git] / xt / handle_moose.t
index 75400e5..3f6d39f 100644 (file)
@@ -1,8 +1,9 @@
 use strictures 1;
+use Test::Exception;
 
 BEGIN { require "t/moo-accessors.t"; }
 
-use Moo::HandleMoose;
+require Moose;
 
 my $meta = Class::MOP::get_metaclass_by_name('Foo');
 
@@ -24,4 +25,26 @@ my $spoon = Spoon->new(four => 4);
 
 is($spoon->four, 4, 'Role application ok');
 
+{
+   package MooRequiresFour;
+
+   use Moo::Role;
+
+   requires 'four';
+
+   package MooRequiresGunDog;
+
+   use Moo::Role;
+
+   requires 'gun_dog';
+}
+
+lives_ok {
+   Moose::Util::apply_all_roles($meta, 'MooRequiresFour');
+} 'apply role with satisified requirement';
+
+dies_ok {
+   Moose::Util::apply_all_roles($meta, 'MooRequiresGunDog');
+} 'apply role with unsatisified requirement';
+
 done_testing;