Convert all tests to done_testing.
[gitmo/Moose.git] / t / 400_moose_util / 002_moose_util_does_role.t
CommitLineData
7125b244 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
a28e50e4 6use Test::More;
7125b244 7
8BEGIN {
11065d1f 9 use_ok('Moose::Util', ':all');
7125b244 10}
11
12{
13 package Foo;
14
15 use Moose::Role;
16}
17
18{
19 package Bar;
20
21 use Moose;
22
23 with qw/Foo/;
24}
25
26{
27 package Baz;
28
29 use Moose;
30}
31
10a745f5 32{
33 package Quux;
34
35 use metaclass;
36}
37
38{
39 package Foo::Foo;
40
41 use Moose::Role;
42
43 with 'Foo';
44}
45
7125b244 46# Classes
47
48ok(does_role('Bar', 'Foo'), '... Bar does Foo');
49
50ok(!does_role('Baz', 'Foo'), '... Baz doesnt do Foo');
51
52# Objects
53
54my $bar = Bar->new;
55
56ok(does_role($bar, 'Foo'), '... $bar does Foo');
57
58my $baz = Baz->new;
59
60ok(!does_role($baz, 'Foo'), '... $baz doesnt do Foo');
61
62# Invalid values
63
64ok(!does_role(undef,'Foo'), '... undef doesnt do Foo');
65
66ok(!does_role(1,'Foo'), '... 1 doesnt do Foo');
10a745f5 67
68# non Moose metaclass
69
70ok(!does_role('Quux', 'Foo'), '... Quux doesnt do Foo (does not die tho)');
71
72# TODO: make the below work, maybe?
73
74# Self
75
76#ok(does_role('Foo', 'Foo'), '... Foo does do Foo');
77
78# sub-Roles
79
80#ok(does_role('Foo::Foo', 'Foo'), '... Foo::Foo does do Foo');
81
a28e50e4 82done_testing;