Switch package name for class+role composed class to be valid
[gitmo/Moo.git] / t / accessor-roles.t
diff --git a/t/accessor-roles.t b/t/accessor-roles.t
new file mode 100644 (file)
index 0000000..eb8b8b6
--- /dev/null
@@ -0,0 +1,25 @@
+use strictures 1;
+use Test::More;
+use Sub::Quote;
+
+{
+  package One; use Moo;
+  has one => (is => 'ro', default => sub { 'one' });
+
+  package One::P1; use Moo::Role;
+  has two => (is => 'ro', default => sub { 'two' });
+
+  package One::P2; use Moo::Role;
+  has three => (is => 'ro', default => sub { 'three' });
+}
+
+my $combined = Moo::Role->create_class_with_roles('One', qw(One::P1 One::P2));
+isa_ok $combined, "One";
+ok $combined->does($_), "Does $_" for qw(One::P1 One::P2);
+
+my $c = $combined->new;
+is $c->one, "one",     "attr default set from class";
+is $c->two, "two",     "attr default set from role";
+is $c->three, "three", "attr default set from role";
+
+done_testing;