summaryrefslogtreecommitdiffstats
path: root/t/abstract-subclass.t
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-04-25 01:36:31 -0500
committerJesse Luehrs <doy@tozt.net>2012-04-25 01:37:24 -0500
commitc700061c7b00d18778389d0850d21f966bd25ec6 (patch)
tree20ff7b852f4742f68a81599cb601a02ce64cbe3f /t/abstract-subclass.t
parent9a6b074c9ed600e402e0bfe09ff43dc9138bfaa8 (diff)
downloadmoosex-abc-c700061c7b00d18778389d0850d21f966bd25ec6.tar.gz
moosex-abc-c700061c7b00d18778389d0850d21f966bd25ec6.zip
cleanups
Diffstat (limited to 't/abstract-subclass.t')
-rw-r--r--t/abstract-subclass.t50
1 files changed, 50 insertions, 0 deletions
diff --git a/t/abstract-subclass.t b/t/abstract-subclass.t
new file mode 100644
index 0000000..f2cc65c
--- /dev/null
+++ b/t/abstract-subclass.t
@@ -0,0 +1,50 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+use Test::Fatal;
+
+{
+ package Foo;
+ use Moose;
+ use MooseX::ABC;
+
+ requires 'foo';
+ requires 'bar';
+}
+
+{
+ package Foo::Sub;
+ use Moose;
+ use MooseX::ABC;
+ extends 'Foo';
+
+ requires 'baz';
+
+ sub bar { 'BAR' }
+}
+
+{
+ package Foo::Sub::Sub;
+ use Moose;
+ extends 'Foo::Sub';
+
+ sub foo { 'FOO' }
+ sub baz { 'BAZ' }
+}
+
+like(
+ exception { Foo->new },
+ qr/Foo is abstract, it cannot be instantiated/,
+ "can't create Foo objects"
+);
+like(
+ exception { Foo::Sub->new },
+ qr/Foo::Sub is abstract, it cannot be instantiated/,
+ "can't create Foo::Sub objects"
+);
+
+my $foo = Foo::Sub::Sub->new;
+is($foo->foo, 'FOO', 'successfully created a Foo::Sub::Sub object');
+
+done_testing;