0.03006 - fix columns_info_for interaction
[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
9395f33a 28plan tests => 8;
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
35DBICTest::Schema::1->loader(undef);
9395f33a 36
37my @warn_output;
38{
39 local $SIG{__WARN__} = sub { push(@warn_output, @_) };
40 DBICTest::Schema::1->connect($make_dbictest_db::dsn);
41}
42my @warnings_regexes = (
43 qr|Dumping manual schema|,
44 (qr|DBICTest/Schema/1.*?.pm exists, will not overwrite|) x 3,
45 qr|Schema dump completed|,
46);
47
48like(shift @warn_output, $_) foreach (@warnings_regexes);
3e3c3fc7 49
520107ef 50rmtree($dump_path, 1, 1);
3e3c3fc7 51
52eval { DBICTest::Schema::2->connect($make_dbictest_db::dsn) };
02356864 53ok(!$@, 'no death with dump_directory set (overwrite1)')
54 or diag "Dump failed: $@";
3e3c3fc7 55
56DBICTest::Schema::2->loader(undef);
57eval { DBICTest::Schema::2->connect($make_dbictest_db::dsn) };
02356864 58ok(!$@, 'no death with dump_directory set (overwrite2)')
59 or diag "Dump failed: $@";
fa994d3c 60
02356864 61END { rmtree($dump_path, 1, 1); }