#!/usr/bin/env perl
use strict;
use warnings;
-use Test::More tests => 9;
+use Test::More tests => 23;
use Test::Exception;
do {
Other->new(oops => 10);
};
+# ClassName coverage tests
+
+do {
+ package A;
+ our $VERSION = 1;
+
+ package B;
+ our @ISA = 'Mouse::Object';
+
+ package C;
+ sub foo {}
+
+ package D::Child;
+ sub bar {}
+
+ package E;
+
+ package F;
+ our $NOT_CODE = 1;
+};
+
+do {
+ package ClassNameTests;
+ use Mouse;
+
+ has class => (
+ is => 'rw',
+ isa => 'ClassName',
+ );
+};
+
+for ('A'..'C', 'D::Child') {
+ lives_ok {
+ ClassNameTests->new(class => $_);
+ };
+
+ lives_ok {
+ my $obj = ClassNameTests->new;
+ $obj->class($_);
+ };
+}
+
+for ('E'..'F', 'NonExistentClass') {
+ throws_ok {
+ ClassNameTests->new(class => $_);
+ } qr/Attribute \(class\) does not pass the type constraint because: Validation failed for 'ClassName' failed with value $_/;
+
+ throws_ok {
+ my $obj = ClassNameTests->new;
+ $obj->class($_);
+ } qr/Attribute \(class\) does not pass the type constraint because: Validation failed for 'ClassName' failed with value $_/;
+};
+