Make sure that required/excludes don't explode
[gitmo/Mouse.git] / t / 400-define-role.t
CommitLineData
995061c2 1#!/usr/bin/env perl
2use strict;
3use warnings;
eb812bde 4use Test::More tests => 7;
995061c2 5use Test::Exception;
6
7lives_ok {
8 package Role;
9 use Mouse::Role;
10
11 no Mouse::Role;
12};
13
8da998d9 14throws_ok {
15 package Role;
16 use Mouse::Role;
17
18 extends 'Role::Parent';
964eaf79 19
20 no Mouse::Role;
21} qr/Role does not currently support 'extends'/;
8da998d9 22
72381201 23lives_ok {
24 package Role;
25 use Mouse::Role;
26
27 sub foo {}
26482d3f 28
29 no Mouse::Role;
72381201 30};
31
32lives_ok {
33 package Role;
34 use Mouse::Role;
35
36 before foo => sub {};
37 after foo => sub {};
38 around foo => sub {};
26482d3f 39
40 no Mouse::Role;
41};
42
43lives_ok {
44 package Role;
45 use Mouse::Role;
46
47 has 'foo';
48
49 no Mouse::Role;
72381201 50};
51
00c0e9c2 52do {
53 package Other::Role;
54 use Mouse::Role;
55 no Mouse::Role;
56};
57
58lives_ok {
59 package Role;
60 use Mouse::Role;
61
62 with 'Other::Role';
63
64 no Mouse::Role;
65};
66
eb812bde 67lives_ok {
68 package Role;
69 use Mouse::Role;
70
71 requires 'required';
72 excludes 'excluded';
73
74 no Mouse::Role;
75};
76