X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F201-squirrel.t;h=8a377318210410dbd54d1a99d41129fb9f084f29;hb=478cab2c569b5da1c9ba0883de7a516d931b8a72;hp=aa09a9d9536b7efb98a52033c07ab608063225d9;hpb=303b7f48e732f24efaf609b899c317506c59bbdb;p=gitmo%2FMouse.git diff --git a/t/201-squirrel.t b/t/201-squirrel.t index aa09a9d..8a37731 100644 --- a/t/201-squirrel.t +++ b/t/201-squirrel.t @@ -4,8 +4,9 @@ use strict; use warnings; use Test::More; +use Scalar::Util 'blessed'; -{ +do { package Foo; use Squirrel; @@ -13,17 +14,19 @@ use Test::More; isa => "Int", is => "rw", ); -} + + no Squirrel; +}; # note that 'Foo' is defined before this, to prevent Moose being loaded from # affecting its definition BEGIN { plan skip_all => "Moose required for this test" unless eval { require Moose }; - plan 'no_plan'; + plan tests => 12; } -{ +do { package Bar; use Squirrel; @@ -31,20 +34,41 @@ BEGIN { isa => "Int", is => "rw", ); -} -my $foo = Foo->new( foo => 3 ); + no Squirrel; +}; + +my $foo = Foo->new(foo => 3); +isa_ok($foo, "Foo"); +isa_ok($foo, "Mouse::Object"); +is($foo->foo, 3, "accessor"); + +my $bar = Bar->new(foo => 3); +isa_ok($bar, "Bar"); +isa_ok($bar, "Moose::Object"); +is($bar->foo, 3, "accessor"); -isa_ok( $foo, "Foo" ); +ok(!Foo->can('has'), "Mouse::has was unimported"); +ok(!Bar->can('has'), "Moose::has was unimported"); -isa_ok( $foo, "Mouse::Object" ); +eval " + package Foo; + use Squirrel; + + has bar => (is => 'rw'); + __PACKAGE__->meta->make_immutable; -is( $foo->foo, 3, "accessor" ); + package Bar; + use Squirrel; + has bar => (is => 'rw'); + __PACKAGE__->meta->make_immutable; +"; +warn $@ if $@; -my $bar = Bar->new( foo => 3 ); +is(blessed(Foo->meta->get_attribute('foo')), 'Mouse::Meta::Attribute'); +is(blessed(Foo->meta->get_attribute('bar')), 'Mouse::Meta::Attribute', 'Squirrel is consistent if Moose was loaded between imports'); -isa_ok( $bar, "Bar" ); -isa_ok( $bar, "Moose::Object" ); +is(blessed(Bar->meta->get_attribute('foo')), 'Moose::Meta::Attribute'); +is(blessed(Bar->meta->get_attribute('bar')), 'Moose::Meta::Attribute'); -is( $bar->foo, 3, "accessor" );