11a25cf5462b8f7bdd88e393ce69a29b27f97dbb
[gitmo/MooseX-Compiler.git] / t / constructor.t
1 use strict;
2 use warnings;
3
4 use lib 't/lib';
5
6 use Test::MooseX::Compiler qw( save_fragment );
7 use Test::More 0.88;
8
9 use MooseX::Compiler;
10
11 {
12     my $code = <<'EOF';
13 use Moose;
14
15 sub foo { 42 }
16 EOF
17
18     my $class = 'Test::Class1';
19     save_fragment( $class, $code );
20
21     my $compiler = MooseX::Compiler->new(
22         class => $class,
23     );
24
25     my $compiled = $compiler->compile_class();
26     like(
27         $compiled,
28         qr/sub new {.+\n}\n/s,
29         'compiled code has a constructor'
30     );
31
32     for my $module (qw( Scalar::Util Moose::Error::Util Carp )) {
33         like(
34             $compiled,
35             qr/^use \Q$module\E \(\);/m,
36             "compiled code loads $module"
37         );
38     }
39 }
40
41 done_testing();