12c51532e1d24ecc462e87419e4bd3988549d754
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 60dbicdump_config.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7 use File::Path qw/make_path rmtree/;
8 use DBIx::Class::Schema::Loader::Optional::Dependencies ();
9 use DBIx::Class::Schema::Loader::Utils 'slurp_file';
10 use lib 't/lib';
11 use make_dbictest_db ();
12 use dbixcsl_test_dir '$tdir';
13
14 BEGIN {
15   use DBIx::Class::Schema::Loader::Optional::Dependencies ();
16   plan skip_all => 'Tests needs ' . DBIx::Class::Schema::Loader::Optional::Dependencies->req_missing_for('test_dbicdump_config')
17     unless (DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for('test_dbicdump_config'));
18 }
19
20 plan tests => 2;
21
22 my $config_dir  = "$tdir/dbicdump_config";
23 make_path $config_dir;
24 my $config_file = "$config_dir/my.conf";
25
26 my $dump_path   = "$tdir/dbicdump_config_dump";
27
28 open my $fh, '>', $config_file
29     or die "Could not write to $config_file: $!";
30
31 print $fh <<"EOF";
32 schema_class DBICTest::Schema
33
34 <connect_info>
35     dsn $make_dbictest_db::dsn
36 </connect_info>
37
38 <loader_options>
39     dump_directory $dump_path
40     components     InflateColumn::DateTime
41     quiet          1
42 </loader_options>
43 EOF
44
45 close $fh;
46
47 system $^X, 'script/dbicdump', $config_file;
48
49 is $? >> 8, 0,
50     'dbicdump executed successfully';
51
52 my $foo = slurp_file "$dump_path/DBICTest/Schema/Result/Foo.pm";
53
54 like $foo, qr/InflateColumn::DateTime/,
55     'loader options read correctly from config_file';
56
57 done_testing;
58
59 END {
60     rmtree($config_dir, 1, 1);
61     rmtree($dump_path,  1, 1);
62 }