diff options
Diffstat (limited to 't/compat/inc_hash.t')
-rw-r--r-- | t/compat/inc_hash.t | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/t/compat/inc_hash.t b/t/compat/inc_hash.t new file mode 100644 index 0000000..25f6b47 --- /dev/null +++ b/t/compat/inc_hash.t @@ -0,0 +1,101 @@ +use strict; +use warnings; +use Test::More; +use lib 't/lib'; + +use Moose (); +use Module::Runtime 'module_notional_filename'; + +sub inc_ok { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($class) = @_; + is($INC{module_notional_filename($class)}, '(set by Moose)'); +} + +sub no_inc_ok { + local $Test::Builder::Level = $Test::Builder::Level + 1; + my ($class) = @_; + ok(!exists $INC{module_notional_filename($class)}); +} + +{ + no_inc_ok('Foo'); + my $meta = Moose::Meta::Class->create('Foo'); + inc_ok('Foo'); +} +inc_ok('Foo'); + +{ + no_inc_ok('Bar'); + ok(!exists $INC{module_notional_filename('Bar')}); + my $meta = Class::MOP::Package->create('Bar'); + inc_ok('Bar'); +} +inc_ok('Bar'); + +my $anon_name; +{ + my $meta = Moose::Meta::Class->create_anon_class; + $anon_name = $meta->name; + inc_ok($anon_name); +} +no_inc_ok($anon_name); + +{ + no_inc_ok('Real::Package'); + require Real::Package; + like($INC{module_notional_filename('Real::Package')}, qr{t.lib.Real.Package\.pm$}); + my $meta = Moose::Meta::Class->create('Real::Package'); + like($INC{module_notional_filename('Real::Package')}, qr{t.lib.Real.Package\.pm$}); +} +like($INC{module_notional_filename('Real::Package')}, qr{t.lib.Real.Package\.pm$}); + +BEGIN { no_inc_ok('UseMoose') } +{ + package UseMoose; + use Moose; +} +BEGIN { inc_ok('UseMoose') } + +BEGIN { no_inc_ok('UseMooseRole') } +{ + package UseMooseRole; + use Moose::Role; +} +BEGIN { inc_ok('UseMooseRole') } + +BEGIN { + package My::Custom::Moose; + use Moose::Exporter; + + Moose::Exporter->setup_import_methods( + also => ['Moose'], + ); + $INC{::module_notional_filename(__PACKAGE__)} = __FILE__; +} + +BEGIN { no_inc_ok('UseMooseCustom') } +{ + package UseMooseCustom; + use My::Custom::Moose; +} +BEGIN { inc_ok('UseMooseCustom') } + +BEGIN { + package My::Custom::Moose::Role; + use Moose::Exporter; + + Moose::Exporter->setup_import_methods( + also => ['Moose::Role'], + ); + $INC{::module_notional_filename(__PACKAGE__)} = __FILE__; +} + +BEGIN { no_inc_ok('UseMooseCustomRole') } +{ + package UseMooseCustomRole; + use My::Custom::Moose::Role; +} +BEGIN { inc_ok('UseMooseCustomRole') } + +done_testing; |