Make Mouse::Util::load_class return the argument class name, which can remove several...
[gitmo/Mouse.git] / t / 810_with_moose / 202-squirrel-role.t
CommitLineData
7a1781ae 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More;
7
8use Mouse::Spec;
9
10use Scalar::Util 'blessed';
11
12BEGIN {
13 $SIG{__WARN__} = sub { warn $_[0] if $_[0] !~ /Squirrel is deprecated/ };
14}
15
16do {
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
31BEGIN {
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
37do {
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
49ok(!Foo::Role->can('has'), "Mouse::Role::has was unimported");
50ok(!Bar::Role->can('has'), "Moose::Role::has was unimported");
51
52eval 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
64isa_ok(Foo::Role->meta, 'Mouse::Meta::Role');
65isa_ok(Foo::Role->meta, 'Mouse::Meta::Role');
66
67isa_ok(Bar::Role->meta, 'Moose::Meta::Role');
68isa_ok(Bar::Role->meta, 'Moose::Meta::Role');
69