Fix generated_classes with dry_run => 1
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 23dumpmore.t
index 07b1bc1..47364f5 100644 (file)
@@ -364,7 +364,7 @@ $t->dump_test(
   ],
   regexes => {
     'Result/MySchema/Foo' => [
-      qr/^package DBICTest::DumpMore::1::Result::MySchema::Foo;$/m,
+      qr/^package DBICTest::DumpMore::1::Result::MySchema::Foo;/m,
       qr/^\Q__PACKAGE__->table("my_schema.foo");\E/m,
       # the has_many relname should not have the schema in it, but the class should
       qr/^__PACKAGE__->has_many\(\n  "bars",\n  "DBICTest::DumpMore::1::Result::MySchema::Bar"/m,
@@ -387,12 +387,13 @@ $t->dump_test(
     constraint => [ [ qr/my_schema/ => qr/foo|bar/ ] ],
     exclude => [ [ qr/my_schema/ => qr/bar/ ] ],
   },
+  generated_results => [qw(MySchema::Floop)],
   warnings => [
     qr/^db_schema is not supported on SQLite/,
   ],
   regexes => {
     'Result/MySchema/Floop' => [
-      qr/^package DBICTest::DumpMore::1::Result::MySchema::Floop;$/m,
+      qr/^package DBICTest::DumpMore::1::Result::MySchema::Floop;/m,
       qr/^\Q__PACKAGE__->table("my_schema.foo");\E/m,
     ],
   },
@@ -404,6 +405,48 @@ $t->dump_test(
   },
 );
 
+# test moniker_map + moniker_part_map
+$t->dump_test(
+  classname => 'DBICTest::DumpMore::1',
+  options => {
+    db_schema => 'my_schema',
+    moniker_parts => ['_schema', 'name'],
+    moniker_part_separator => '::',
+    moniker_part_map => {
+        _schema => {
+            my_schema => 'OtherSchema',
+        },
+    },
+    moniker_map => {
+        my_schema => {
+            foo => 'MySchema::Floop',
+        },
+    },
+    qualify_objects => 1,
+    use_namespaces => 1,
+  },
+  warnings => [
+    qr/^db_schema is not supported on SQLite/,
+  ],
+  regexes => {
+    'Result/MySchema/Floop' => [
+      qr/^package DBICTest::DumpMore::1::Result::MySchema::Floop;/m,
+      qr/^\Q__PACKAGE__->table("my_schema.foo");\E/m,
+      # the has_many relname should not have the schema in it, but the class should
+      qr/^__PACKAGE__->has_many\(\n  "bars",\n  "DBICTest::DumpMore::1::Result::OtherSchema::Bar"/m,
+    ],
+    'Result/OtherSchema/Bar' => [
+      qr/^package DBICTest::DumpMore::1::Result::OtherSchema::Bar;/m,
+      qr/^\Q__PACKAGE__->table("my_schema.bar");\E/m,
+      # the has_many relname should not have the schema in it, but the class should
+      qr/^__PACKAGE__->belongs_to\(\n  "fooref",\n  "DBICTest::DumpMore::1::Result::MySchema::Floop"/m,
+    ],
+
+  },
+);
+
+
+
 $t->dump_test(
   classname => 'DBICTest::DumpMore::1',
   options => {
@@ -534,6 +577,7 @@ $t->dump_test(
     options => {
         use_namespaces => 1,
     },
+    generated_results => [qw(Foo Bar)],
     regexes => {
         'Result/Foo' => [
             qr/sub custom_method { 'custom_method works' }\n0;\n\n# You can replace.*\n1;\n\z/,
@@ -541,5 +585,19 @@ $t->dump_test(
     },
 );
 
+# test dry-run mode
+$t->dump_test(
+    classname => 'DBICTest::DumpMore::DryRun',
+    options => {
+        dry_run => 1,
+    },
+    generated_results => [qw(Foo Bar)],
+);
+
+my $schema_file = $t->class_file('DBICTest::DumpMore::DryRun');
+ok( !-e $schema_file, "dry-run doesn't create file for schema class" );
+(my $schema_dir = $schema_file) =~ s/\.pm\z//;
+ok( !-e $schema_dir, "dry-run doesn't create subdirectory for schema namespace" );
+
 done_testing;
 # vim:et sts=4 sw=4 tw=0: