initial commit
[gitmo/MooseX-Compiler.git] / t / remove-use-moose.t
CommitLineData
9e60f0d8 1use strict;
2use warnings;
3
4use lib 't/lib';
5
6use Test::MooseX::Compiler qw( save_class );
7use Test::More 0.88;
8
9use MooseX::Compiler;
10
11{
12 my $code = <<'EOF';
13package Test::Class1;
14
15use strict;
16use warnings;
17
18use Moose;
19
20sub foo { 42 }
21
221;
23EOF
24
25 save_class( 'Test::Class1', $code );
26
27 my $compiler = MooseX::Compiler->new(
28 class => 'Test::Class1',
29 );
30
31 my $compiled = $compiler->compile_class();
32 like(
33 $compiled,
34 qr/^\#\s*use Moose;\n/m,
35 'use Moose declaration is commented out in compiled code'
36 );
37
38 unlike(
39 $compiled,
40 qr/^use Moose;\n/m,
41 'original use Moose declaration is removed from compiled code'
42 );
43}
44
45{
46 my $code = <<'EOF';
47package Test::Class2;
48
49use strict;
50use warnings;
51
52use Moose 0.1;
53
54sub foo { 42 }
55
561;
57EOF
58
59 save_class( 'Test::Class1', $code );
60
61 my $compiler = MooseX::Compiler->new(
62 class => 'Test::Class1',
63 );
64
65 my $compiled = $compiler->compile_class();
66 unlike(
67 $compiled,
68 qr/^\#\s*use Moose;\n/m,
69 'use Moose declaration is not commented out in compiled code'
70 );
71
72 like(
73 $compiled,
74 qr/^use\s+Moose\s+0\.1\s+\(\)\s*;\n/m,
75 'original use Moose declaration is preserved, but () is added to prevent importing'
76 );
77}
78
79done_testing();