+use DBIx::Class::Schema::Loader::Optional::Dependencies
+ -skip_all_without => 'test_rdbms_informix';
+
use strict;
use warnings;
use Test::More;
my ($schema, $extra_schema); # for cleanup in END for extra tests
-my $tester = dbixcsl_common_tests->new(
+dbixcsl_common_tests->new(
vendor => 'Informix',
auto_inc_pk => 'serial primary key',
null => '',
numeric => { data_type => 'numeric' },
decimal => { data_type => 'numeric' },
dec => { data_type => 'numeric' },
- 'numeric(6,3)' => { data_type => 'numeric', size => [6,3] },
- 'decimal(6,3)' => { data_type => 'numeric', size => [6,3] },
- 'dec(6,3)' => { data_type => 'numeric', size => [6,3] },
+ 'numeric(6,3)' => { data_type => 'numeric', size => [6,3] },
+ 'decimal(6,3)' => { data_type => 'numeric', size => [6,3] },
+ 'dec(6,3)' => { data_type => 'numeric', size => [6,3] },
# Boolean Type
# XXX this should map to 'boolean'
});
my $dbh1 = $schema->storage->dbh;
- my $dbh2 = $extra_schema->storage->dbh;
$dbh1->do(<<'EOF');
CREATE TABLE informix_loader_test4 (
$dbh1->do(<<'EOF');
ALTER TABLE informix_loader_test5 ADD CONSTRAINT UNIQUE (four_id) CONSTRAINT loader_test5_uniq
EOF
+
+ my $db1 = db_name($schema);
+
+ $dbh1->disconnect;
+
+ my $dbh2 = $extra_schema->storage->dbh;
+
$dbh2->do(<<'EOF');
CREATE TABLE informix_loader_test5 (
pk SERIAL PRIMARY KEY,
)
EOF
- my $db1 = db_name($schema);
my $db2 = db_name($extra_schema);
+ $dbh2->disconnect;
+
my $db1_moniker = join '', map ucfirst lc, split_name to_identifier $db1;
my $db2_moniker = join '', map ucfirst lc, split_name to_identifier $db2;
push @warns, $_[0] unless $_[0] =~ /\bcollides\b/
|| $_[0] =~ /unreferencable/;
};
-
+
make_schema_at(
'InformixMultiDatabase',
{
[ $dsn, $user, $password ],
);
+ InformixMultiDatabase->storage->disconnect;
+
diag join "\n", @warns if @warns;
is @warns, 0;
}
},
},
-);
-
-if( !$dsn ) {
- $tester->skip_tests('You need to set the DBICTEST_INFORMIX_DSN, _USER, and _PASS environment variables');
-}
-else {
- $tester->run_tests();
-}
+)->run_tests();
sub db_name {
my $schema = shift;
local $schema->loader->{schema} = $schema;
return $schema->loader->_current_db;
+
+ $schema->storage->disconnect;
}
END {
if (not $ENV{SCHEMA_LOADER_TESTS_NOCLEANUP}) {
if (my $dbh2 = try { $extra_schema->storage->dbh }) {
- my $dbh1 = $schema->storage->dbh;
try {
$dbh2->do('DROP TABLE informix_loader_test7');
$dbh2->do('DROP TABLE informix_loader_test6');
$dbh2->do('DROP TABLE informix_loader_test5');
+ }
+ catch {
+ die "Error dropping test tables: $_";
+ };
+
+ $dbh2->disconnect;
+ }
+
+ if (my $dbh1 = try { $schema->storage->dbh }) {
+
+ try {
$dbh1->do('DROP TABLE informix_loader_test5');
$dbh1->do('DROP TABLE informix_loader_test4');
}
catch {
die "Error dropping test tables: $_";
};
+
+ $dbh1->disconnect;
}
rmtree EXTRA_DUMP_DIR;