Commit | Line | Data |
9e60f0d8 |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use lib 't/lib'; |
5 | |
6 | use Test::MooseX::Compiler qw( save_class ); |
7 | use Test::More 0.88; |
8 | |
9 | use MooseX::Compiler; |
10 | |
11 | { |
12 | my $code = <<'EOF'; |
13 | package Test::Class1; |
14 | |
15 | use strict; |
16 | use warnings; |
17 | |
18 | use Moose; |
19 | |
20 | sub foo { 42 } |
21 | |
22 | 1; |
23 | EOF |
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'; |
47 | package Test::Class2; |
48 | |
49 | use strict; |
50 | use warnings; |
51 | |
52 | use Moose 0.1; |
53 | |
54 | sub foo { 42 } |
55 | |
56 | 1; |
57 | EOF |
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 | |
79 | done_testing(); |