diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-06 17:50:16 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-06 17:50:16 +0000 |
commit | 5ac2026f7eed78958d69d051e7a8e993dcf51205 (patch) | |
tree | 298c3d2f08bdfe5689998b11892d72a897985be1 /t/exceptions/class-mop-mixin-hasattributes.t | |
download | Moose-tarball-5ac2026f7eed78958d69d051e7a8e993dcf51205.tar.gz |
Moose-2.1405HEADMoose-2.1405master
Diffstat (limited to 't/exceptions/class-mop-mixin-hasattributes.t')
-rw-r--r-- | t/exceptions/class-mop-mixin-hasattributes.t | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/t/exceptions/class-mop-mixin-hasattributes.t b/t/exceptions/class-mop-mixin-hasattributes.t new file mode 100644 index 0000000..c498c4c --- /dev/null +++ b/t/exceptions/class-mop-mixin-hasattributes.t @@ -0,0 +1,98 @@ +use strict; +use warnings; + +use Test::More; +use Test::Fatal; + +use Moose(); + +{ + my $xyz = bless [], "Bar"; + my $class; + my $exception = exception { + $class = Class::MOP::Class->create("Foo", (attributes => [$xyz])); + }; + + like( + $exception, + qr/\QYour attribute must be an instance of Class::MOP::Mixin::AttributeCore (or a subclass)/, + "an Array ref blessed into Bar is given to create"); + + isa_ok( + $exception, + "Moose::Exception::AttributeMustBeAnClassMOPMixinAttributeCoreOrSubclass", + "an Array ref blessed into Bar is given to create"); + + is( + $exception->attribute, + $xyz, + "an Array ref blessed into Bar is given to create"); +} + +{ + my $class = Class::MOP::Class->create("Foo"); + my $exception = exception { + $class->has_attribute; + }; + + like( + $exception, + qr/You must define an attribute name/, + "attribute name is not given"); + + isa_ok( + $exception, + "Moose::Exception::MustDefineAnAttributeName", + "attribute name is not given"); + + is( + $exception->class_name, + 'Foo', + "attribute name is not given"); +} + +{ + my $class = Class::MOP::Class->create("Foo"); + my $exception = exception { + $class->get_attribute; + }; + + like( + $exception, + qr/You must define an attribute name/, + "attribute name is not given"); + + isa_ok( + $exception, + "Moose::Exception::MustDefineAnAttributeName", + "attribute name is not given"); + + is( + $exception->class_name, + "Foo", + "attribute name is not given"); +} + +{ + my $class = Class::MOP::Class->create("Foo"); + my $exception = exception { + $class->remove_attribute; + }; + + like( + $exception, + qr/You must define an attribute name/, + "attribute name is not given"); + + isa_ok( + $exception, + "Moose::Exception::MustDefineAnAttributeName", + "attribute name is not given"); + + is( + $exception->class_name, + "Foo", + "attribute name is not given"); +} + +done_testing; |