blob: 25f6b47291b4fcb9e76400c744a93a9443f3c58f (
plain)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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;
|