From c700061c7b00d18778389d0850d21f966bd25ec6 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 25 Apr 2012 01:36:31 -0500 Subject: cleanups --- t/abstract-subclass.t | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 t/abstract-subclass.t (limited to 't/abstract-subclass.t') 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; -- cgit v1.2.3-54-g00ecf