add Travis CI config
[gitmo/Moo.git] / xt / handle_moose.t
index 75400e5..397f2fd 100644 (file)
@@ -1,8 +1,9 @@
 use strictures 1;
+use Test::Fatal;
 
 BEGIN { require "t/moo-accessors.t"; }
 
-use Moo::HandleMoose;
+require Moose;
 
 my $meta = Class::MOP::get_metaclass_by_name('Foo');
 
@@ -14,6 +15,11 @@ is($attr->get_read_method_ref->body, Foo->can('one'), 'Right method');
 
 is(Foo->new(one => 1, THREE => 3)->one, 1, 'Accessor still works');
 
+is(
+  Foo->meta->get_attribute('one')->get_read_method, 'one',
+  'Method name via ->meta'
+);
+
 $meta = Moose::Meta::Class->initialize('Spoon');
 
 $meta->superclasses('Moose::Object');
@@ -24,4 +30,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';
+}
+
+is exception {
+   Moose::Util::apply_all_roles($meta, 'MooRequiresFour');
+}, undef, 'apply role with satisified requirement';
+
+ok exception {
+   Moose::Util::apply_all_roles($meta, 'MooRequiresGunDog');
+}, 'apply role with unsatisified requirement';
+
 done_testing;