#!/usr/bin/env perl
use strict;
use warnings;
-use Test::More tests => 9;
+use Test::More tests => 11;
do {
package Class;
has name => (
is => 'rw',
+ isa => 'Str',
init_arg => 'key',
default => 'default',
);
ok($attr, 'got the attribute object by name (not init_arg)');
is($attr->name, 'name', 'name is name');
is($attr->init_arg, 'key', 'init_arg is key');
+
+do {
+ package Foo;
+ use Mouse;
+
+ has name => (
+ is => 'rw',
+ init_arg => undef,
+ default => 'default',
+ );
+};
+
+my $foo = Foo->new(name => 'joe');
+is($foo->name, 'default', 'init_arg => undef ignores attribute name in the constructor');
+
+Foo->meta->make_immutable;
+
+my $bar = Foo->new(name => 'joe');
+is($bar->name, 'default', 'init_arg => undef ignores attribute name in the inlined constructor');