summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-08-28 22:27:06 -0500
committerJesse Luehrs <doy@tozt.net>2009-08-28 22:27:06 -0500
commitb55abfc680e335f49c9d7441cecefaff588356fb (patch)
tree3a553bd5d94663ca96fcd8db1d8c78de7205aedd
parentbd37463d062cd735827eefaacdf09f60f26f9985 (diff)
downloadmoosex-abc-b55abfc680e335f49c9d7441cecefaff588356fb.tar.gz
moosex-abc-b55abfc680e335f49c9d7441cecefaff588356fb.zip
add test for creating an abstract subclass of an abstract class
-rw-r--r--t/004-abstract-subclass.t33
1 files changed, 33 insertions, 0 deletions
diff --git a/t/004-abstract-subclass.t b/t/004-abstract-subclass.t
new file mode 100644
index 0000000..3f57b59
--- /dev/null
+++ b/t/004-abstract-subclass.t
@@ -0,0 +1,33 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More tests => 3;
+use Test::Exception;
+
+package Foo;
+use Moose;
+use MooseX::ABC;
+
+requires 'foo';
+requires 'bar';
+
+package Foo::Sub;
+use Moose;
+use MooseX::ABC;
+requires 'foo';
+extends 'Foo';
+
+sub bar { 'BAR' }
+
+package Foo::Sub::Sub;
+use Moose;
+extends 'Foo::Sub';
+
+sub foo { 'FOO' }
+
+package main;
+
+dies_ok { Foo->new } "can't create Foo objects";
+dies_ok { Foo::Sub->new } "can't create Foo::Sub objects";
+my $foo = Foo::Sub::Sub->new;
+is($foo->foo, 'FOO', 'successfully created a Foo::Sub::Sub object');