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