Work in progress on compiler. It's blowing up right now.
[gitmo/MooseX-Compiler.git] / t / constructor.t
index ffbc1f7..10f1212 100644 (file)
@@ -3,7 +3,7 @@ use warnings;
 
 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;
@@ -45,28 +45,34 @@ use Moose;
 
 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();