blob: f2cc65ced632e8912656615a871d28a71732a924 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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;
|