Changelogging
[gitmo/Mouse.git] / t / 202-squirrel-role.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7 use Scalar::Util 'blessed';
8
9 BEGIN {
10     $SIG{__WARN__} = sub { warn $_[0] if $_[0] !~ /Squirrel is deprecated/ };
11 }
12
13 do {
14     package Foo::Role;
15     use Squirrel::Role;
16
17     has foo => (
18         isa => "Int",
19         is  => "rw",
20     );
21
22     no Squirrel::Role;
23 };
24
25 # note that 'Foo' is defined before this, to prevent Moose being loaded from
26 # affecting its definition
27
28 BEGIN {
29     plan skip_all => "Moose 0.68 required for this test" unless eval { require Moose::Role && Moose::Role->VERSION('0.68') };
30     plan tests => 6;
31 }
32
33 do {
34     package Bar::Role;
35     use Squirrel::Role;
36
37     has foo => (
38         isa => "Int",
39         is  => "rw",
40     );
41
42     no Squirrel::Role;
43 };
44
45 ok(!Foo::Role->can('has'), "Mouse::Role::has was unimported");
46 SKIP: {
47     skip "ancient moose", 1 if $Moose::VERSION <= 0.50;
48     ok(!Bar::Role->can('has'), "Moose::Role::has was unimported");
49 }
50
51 eval "
52     package Foo::Role;
53     use Squirrel::Role;
54
55     has bar => (is => 'rw');
56
57     package Bar::Role;
58     use Squirrel::Role;
59
60     has bar => (is => 'rw');
61 ";
62
63 isa_ok(Foo::Role->meta, 'Mouse::Meta::Role');
64 isa_ok(Foo::Role->meta, 'Mouse::Meta::Role');
65
66 isa_ok(Bar::Role->meta, 'Moose::Meta::Role');
67 isa_ok(Bar::Role->meta, 'Moose::Meta::Role');
68