Added code to fixup line numbers, inline constructor, and load modules that construct...
[gitmo/MooseX-Compiler.git] / t / constructor.t
diff --git a/t/constructor.t b/t/constructor.t
new file mode 100644 (file)
index 0000000..11a25cf
--- /dev/null
@@ -0,0 +1,41 @@
+use strict;
+use warnings;
+
+use lib 't/lib';
+
+use Test::MooseX::Compiler qw( save_fragment );
+use Test::More 0.88;
+
+use MooseX::Compiler;
+
+{
+    my $code = <<'EOF';
+use Moose;
+
+sub foo { 42 }
+EOF
+
+    my $class = 'Test::Class1';
+    save_fragment( $class, $code );
+
+    my $compiler = MooseX::Compiler->new(
+        class => $class,
+    );
+
+    my $compiled = $compiler->compile_class();
+    like(
+        $compiled,
+        qr/sub new {.+\n}\n/s,
+        'compiled code has a constructor'
+    );
+
+    for my $module (qw( Scalar::Util Moose::Error::Util Carp )) {
+        like(
+            $compiled,
+            qr/^use \Q$module\E \(\);/m,
+            "compiled code loads $module"
+        );
+    }
+}
+
+done_testing();