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