update repo to point to github
[gitmo/Moo.git] / t / has-plus.t
1 use strictures 1;
2 use Test::More;
3 use Test::Fatal;
4
5 {
6   package RollyRole;
7
8   use Moo::Role;
9
10   has f => (is => 'ro', default => sub { 0 });
11 }
12
13 {
14   package ClassyClass;
15
16   use Moo;
17
18   has f => (is => 'ro', default => sub { 1 });
19 }
20
21 {
22   package UsesTheRole;
23
24   use Moo;
25
26   with 'RollyRole';
27 }
28
29 {
30   package UsesTheRole2;
31
32   use Moo;
33
34   with 'RollyRole';
35
36   has '+f' => (default => sub { 2 });
37 }
38
39 {
40
41   package ExtendsTheClass;
42
43   use Moo;
44
45   extends 'ClassyClass';
46
47   has '+f' => (default => sub { 3 });
48 }
49
50 {
51   package BlowsUp;
52
53   use Moo;
54
55   ::like(::exception { has '+f' => () }, qr/\Qhas '+f'/, 'Kaboom');
56 }
57
58 is(UsesTheRole->new->f, 0, 'role attr');
59 is(ClassyClass->new->f, 1, 'class attr');
60 is(UsesTheRole2->new->f, 2, 'role attr with +');
61 is(ExtendsTheClass->new->f, 3, 'class attr with +');
62
63 done_testing;