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');
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');
+
+Moose::Util::apply_all_roles($meta, 'Bar');
+
+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;