opt deps for dbicdump config and test
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 60dbicdump_config.t
diff --git a/t/60dbicdump_config.t b/t/60dbicdump_config.t
new file mode 100644 (file)
index 0000000..12c5153
--- /dev/null
@@ -0,0 +1,62 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use File::Path qw/make_path rmtree/;
+use DBIx::Class::Schema::Loader::Optional::Dependencies ();
+use DBIx::Class::Schema::Loader::Utils 'slurp_file';
+use lib 't/lib';
+use make_dbictest_db ();
+use dbixcsl_test_dir '$tdir';
+
+BEGIN {
+  use DBIx::Class::Schema::Loader::Optional::Dependencies ();
+  plan skip_all => 'Tests needs ' . DBIx::Class::Schema::Loader::Optional::Dependencies->req_missing_for('test_dbicdump_config')
+    unless (DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for('test_dbicdump_config'));
+}
+
+plan tests => 2;
+
+my $config_dir  = "$tdir/dbicdump_config";
+make_path $config_dir;
+my $config_file = "$config_dir/my.conf";
+
+my $dump_path   = "$tdir/dbicdump_config_dump";
+
+open my $fh, '>', $config_file
+    or die "Could not write to $config_file: $!";
+
+print $fh <<"EOF";
+schema_class DBICTest::Schema
+
+<connect_info>
+    dsn $make_dbictest_db::dsn
+</connect_info>
+
+<loader_options>
+    dump_directory $dump_path
+    components     InflateColumn::DateTime
+    quiet          1
+</loader_options>
+EOF
+
+close $fh;
+
+system $^X, 'script/dbicdump', $config_file;
+
+is $? >> 8, 0,
+    'dbicdump executed successfully';
+
+my $foo = slurp_file "$dump_path/DBICTest/Schema/Result/Foo.pm";
+
+like $foo, qr/InflateColumn::DateTime/,
+    'loader options read correctly from config_file';
+
+done_testing;
+
+END {
+    rmtree($config_dir, 1, 1);
+    rmtree($dump_path,  1, 1);
+}