make sure EUMM is up to date for travis
[gitmo/Moo.git] / xt / moose-override-attribute-with-plus-syntax.t
index e4b90c3..0a9570f 100644 (file)
@@ -21,6 +21,25 @@ use Test::Fatal;
         default => 'MooseChild',
     );
 }
+{
+    package MooseChild2;
+    use Moose;
+    extends 'MooParent';
+
+    has '+foo' => (
+        default => 'MooseChild2',
+    );
+    __PACKAGE__->meta->make_immutable
+}
+{
+    package MooChild;
+    use Moo;
+    extends 'MooParent';
+
+    has '+foo' => (
+        default => sub { 'MooChild' },
+    );
+}
 
 is(
     MooseChild->new->foo,
@@ -28,5 +47,16 @@ is(
     'default value in Moose child'
 );
 
+is(
+    MooseChild2->new->foo,
+    'MooseChild2',
+    'default value in Moose child'
+);
+
+is(exception {
+    local $SIG{__WARN__} = sub { die $_[0] };
+    ok(MooChild->meta->has_attribute('foo'), 'inflated metaclass has overridden attribute');
+}, undef, 'metaclass inflation of plus override works without warnings');
+
 done_testing;