foo
[gitmo/Moose.git] / t / 401_moose_util_does_role.t
CommitLineData
7125b244 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More tests => 7;
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
32# Classes
33
34ok(does_role('Bar', 'Foo'), '... Bar does Foo');
35
36ok(!does_role('Baz', 'Foo'), '... Baz doesnt do Foo');
37
38# Objects
39
40my $bar = Bar->new;
41
42ok(does_role($bar, 'Foo'), '... $bar does Foo');
43
44my $baz = Baz->new;
45
46ok(!does_role($baz, 'Foo'), '... $baz doesnt do Foo');
47
48# Invalid values
49
50ok(!does_role(undef,'Foo'), '... undef doesnt do Foo');
51
52ok(!does_role(1,'Foo'), '... 1 doesnt do Foo');