use lib 't/lib';
-use Test::MooseX::Compiler qw( save_fragment );
+use Test::MooseX::Compiler qw( save_fragment code_compiles_ok );
use Test::More 0.88;
use MooseX::Compiler;
has a1 => (
is => 'ro',
- isa => 'Int',
default => 42,
);
-sub foo { 42 }
+sub foo { 84 }
EOF
my $class = 'Test::Class2';
save_fragment( $class, $code );
my $compiler = MooseX::Compiler->new(
- class => $class,
+ class => $class,
+ rename_to => 'Test::Class2::Compiled',
);
my $compiled = $compiler->compile_class();
-warn $compiled;
like(
$compiled,
qr/sub new {.+\n}\n/s,
'compiled code has a constructor'
);
+
+ code_compiles_ok($compiled);
+
+ my $obj = Test::Class2::Compiled->new();
+ isa_ok( $obj, 'Test::Class2::Compiled', 'compiled object constructor' );
+ is( $obj->a1(), 'a1 attr defaults to 42' );
+ is( $obj->foo(), 84, 'foo method works' );
}
done_testing();