use strict;
use warnings;
-use Test::More tests => 47;
+use Test::More;
use Test::Exception;
-
{
{
package Test::Attribute::Inline::Documentation;
documentation => q{
The 'foo' attribute is my favorite
attribute in the whole wide world.
- }
+ },
+ is => 'bare',
);
}
my $_foo_attr = $meta->get_attribute("_foo");
ok($foo_attr->is_lazy, "foo is lazy");
- ok($foo_attr->is_required, "foo is required");
ok($foo_attr->is_lazy_build, "foo is lazy_build");
ok($foo_attr->has_clearer, "foo has clearer");
is($foo_attr->predicate, "has_foo", ".. and it's named has_foo");
ok($_foo_attr->is_lazy, "_foo is lazy");
- ok($_foo_attr->is_required, "_foo is required");
+ ok(!$_foo_attr->is_required, "lazy_build attributes are no longer automatically required");
ok($_foo_attr->is_lazy_build, "_foo is lazy_build");
ok($_foo_attr->has_clearer, "_foo has clearer");
use Moose;
}
-lives_ok { OutOfClassTest::has('foo'); } 'create attr via direct sub call';
-lives_ok { OutOfClassTest->can('has')->('bar'); } 'create attr via can';
+lives_ok { OutOfClassTest::has('foo', is => 'bare'); } 'create attr via direct sub call';
+lives_ok { OutOfClassTest->can('has')->('bar', is => 'bare'); } 'create attr via can';
ok(OutOfClassTest->meta->get_attribute('foo'), 'attr created from sub call');
ok(OutOfClassTest->meta->get_attribute('bar'), 'attr created from can');
+
+
+{
+ {
+ package Foo;
+ use Moose;
+
+ ::throws_ok { has 'foo' => ( 'ro', isa => 'Str' ) }
+ qr/^Usage/, 'has throws error with odd number of attribute options';
+ }
+
+}
+
+done_testing;