preserve local changes to generated files by default (still needs tests)
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 22dump.t
CommitLineData
fa994d3c 1use strict;
2use Test::More;
3use lib qw(t/lib);
3e3c3fc7 4use File::Path;
fa994d3c 5use make_dbictest_db;
6
3e3c3fc7 7my $dump_path = './t/_dump';
8
9{
10 package DBICTest::Schema::1;
11 use base qw/ DBIx::Class::Schema::Loader /;
12 __PACKAGE__->loader_options(
13 relationships => 1,
14 dump_directory => $dump_path,
15 );
16}
17
fa994d3c 18{
3e3c3fc7 19 package DBICTest::Schema::2;
fa994d3c 20 use base qw/ DBIx::Class::Schema::Loader /;
21 __PACKAGE__->loader_options(
22 relationships => 1,
3e3c3fc7 23 dump_directory => $dump_path,
fa994d3c 24 dump_overwrite => 1,
25 );
fa994d3c 26}
27
7cab3ab7 28plan tests => 5;
3e3c3fc7 29
520107ef 30rmtree($dump_path, 1, 1);
3e3c3fc7 31
32eval { DBICTest::Schema::1->connect($make_dbictest_db::dsn) };
33ok(!$@, 'no death with dump_directory set') or diag "Dump failed: $@";
34
59cfa251 35DBICTest::Schema::1->_loader_invoked(undef);
9395f33a 36
e682950b 37SKIP: {
38 skip "ActiveState perl produces additional warnings", 5
39 if ($^O eq 'MSWin32');
9395f33a 40
e682950b 41 my @warn_output;
42 {
43 local $SIG{__WARN__} = sub { push(@warn_output, @_) };
44 DBICTest::Schema::1->connect($make_dbictest_db::dsn);
45 }
46 my @warnings_regexes = (
47 qr|Dumping manual schema|,
e682950b 48 qr|Schema dump completed|,
49 );
3e3c3fc7 50
e682950b 51 like(shift @warn_output, $_) foreach (@warnings_regexes);
52
53 rmtree($dump_path, 1, 1);
54}
3e3c3fc7 55
56eval { DBICTest::Schema::2->connect($make_dbictest_db::dsn) };
02356864 57ok(!$@, 'no death with dump_directory set (overwrite1)')
58 or diag "Dump failed: $@";
3e3c3fc7 59
59cfa251 60DBICTest::Schema::2->_loader_invoked(undef);
3e3c3fc7 61eval { DBICTest::Schema::2->connect($make_dbictest_db::dsn) };
02356864 62ok(!$@, 'no death with dump_directory set (overwrite2)')
63 or diag "Dump failed: $@";
fa994d3c 64
7cab3ab7 65# END { rmtree($dump_path, 1, 1); }