Commits

Toby Inkster committed 3ec03f8 Draft

add failing test re playing nicely with others

Comments (0)

Files changed (1)

t/03classattribute.t

+# This test is included to check that MooseX::RoleQR plays nice
+# with other metaclass traits; not because the interaction with
+# MooseX::ClassAttribute in particular is especially exciting.
+#
+
+use Test::More;
+
+BEGIN {
+	eval 'require MooseX::ClassAttribute; 1'
+		or plan skip_all => 'requires MooseX::ClassAttribute';
+}
+
+my %X;
+
+{
+	package Local::QR1;
+	use MooseX::RoleQR;
+	use MooseX::ClassAttribute;
+	class_has classy1 => (is => 'ro');
+	before qr{^a} => sub { $X{$_[1]}++ };
+}
+
+{
+	package Local::R1;
+	use Moose::Role;
+	use MooseX::ClassAttribute;
+	class_has classy2 => (is => 'ro');
+	before f => sub { $X{$_[1]}++ };
+}
+
+{
+	package Local::C1;
+	use Moose;
+	use MooseX::ClassAttribute;
+	with qw( Local::QR1 Local::R1 );
+	class_has classy3 => (is => 'ro');
+	sub a { 1 }
+	sub f { 1 }
+}
+
+Local::C1->new->a('a'); $X{a}--;
+is $X{a}, 0, "Class which composes a QR role and a regular role";
+
+can_ok 'Local::C1' => qw( classy1 classy2 classy3 );
+
+done_testing;
+