Fix tests for Squirrel::Role
[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 do {
10     package Foo::Role;
11     use Squirrel::Role;
12
13     has foo => (
14         isa => "Int",
15         is  => "rw",
16     );
17
18     no Squirrel::Role;
19 };
20
21 # note that 'Foo' is defined before this, to prevent Moose being loaded from
22 # affecting its definition
23
24 BEGIN {
25     plan skip_all => "Moose required for this test" unless eval { require Moose::Role };
26     plan tests => 6;
27 }
28
29 do {
30     package Bar::Role;
31     use Squirrel::Role;
32
33     has foo => (
34         isa => "Int",
35         is  => "rw",
36     );
37
38     no Squirrel::Role;
39 };
40
41 ok(!Foo::Role->can('has'), "Mouse::Role::has was unimported");
42 ok(!Bar::Role->can('has'), "Moose::Role::has was unimported");
43
44 eval "
45     package Foo::Role;
46     use Squirrel::Role;
47
48     has bar => (is => 'rw');
49
50     package Bar::Role;
51     use Squirrel::Role;
52
53     has bar => (is => 'rw');
54 ";
55
56 isa_ok(Foo::Role->meta, 'Mouse::Meta::Role');
57 isa_ok(Foo::Role->meta, 'Mouse::Meta::Role');
58
59 isa_ok(Bar::Role->meta, 'Moose::Meta::Role');
60 isa_ok(Bar::Role->meta, 'Moose::Meta::Role');
61