6 use Test::MooseX::Compiler qw( save_fragment code_compiles_ok );
18 my $class = 'Test::Class1';
19 save_fragment( $class, $code );
21 my $compiler = MooseX::Compiler->new(
25 my $compiled = $compiler->compile_class();
29 qr/sub new {.+\n}\n/s,
30 'compiled code has a constructor'
33 for my $module (qw( Scalar::Util Moose::Error::Util Carp )) {
36 qr/^use \Q$module\E \(\);/m,
37 "compiled code loads $module"
54 my $class = 'Test::Class2';
55 save_fragment( $class, $code );
57 my $compiler = MooseX::Compiler->new(
59 rename_to => 'Test::Class2::Compiled',
62 my $compiled = $compiler->compile_class();
66 qr/sub new {.+\n}\n/s,
67 'compiled code has a constructor'
70 code_compiles_ok($compiled);
72 my $obj = Test::Class2::Compiled->new();
73 isa_ok( $obj, 'Test::Class2::Compiled', 'compiled object constructor' );
74 is( $obj->a1(), 'a1 attr defaults to 42' );
75 is( $obj->foo(), 84, 'foo method works' );