X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F10_09firebird_common.t;h=358c60af212dab565f6cd06c154a2c918e21c33e;hb=ffd4ce367abb2ebc8bfa611e091b5f3b181ab795;hp=50b74be6c81427ef608b519254b42f59861b1234;hpb=b4e3cc291e2b1c6efe12dd4f9166849e07a57dac;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/10_09firebird_common.t b/t/10_09firebird_common.t index 50b74be..358c60a 100644 --- a/t/10_09firebird_common.t +++ b/t/10_09firebird_common.t @@ -2,32 +2,38 @@ use strict; use warnings; use Test::More; use Scope::Guard (); -use DBIx::Class::Optional::Dependencies; +use DBIx::Class::Schema::Loader::Optional::Dependencies; use DBIx::Class::Schema::Loader::Utils qw/sigwarn_silencer/; use lib qw(t/lib); use dbixcsl_common_tests; -my %dsns; -for (qw(FIREBIRD FIREBIRD_ODBC FIREBIRD_INTERBASE)) { - next unless $ENV{"DBICTEST_${_}_DSN"}; +my %env2optdep = map { $_ => lc "test_rdbms_$_" } qw(FIREBIRD FIREBIRD_INTERBASE FIREBIRD_ODBC); + +plan skip_all => 'requirements not satisfied: ' . (join ' OR ', map + { "[ @{[ DBIx::Class::Schema::Loader::Optional::Dependencies->req_missing_for( $_ ) ]} ]" } + values %env2optdep +) unless scalar grep + { DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for( $_ ) } + values %env2optdep +; - my $dep_group = lc "rdbms_$_"; - if (!DBIx::Class::Optional::Dependencies->req_ok_for($dep_group)) { - diag 'You need to install ' . DBIx::Class::Optional::Dependencies->req_missing_for($dep_group) - . " to test with $_"; +my %dsns; +for my $type (keys %env2optdep) { + my %conninfo; + @conninfo{qw(dsn user password)} = map { $ENV{"DBICTEST_${type}_$_"} } qw(DSN USER PASS); + next unless $conninfo{dsn}; + + my $dep_group = $env2optdep{$type}; + if (!DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for($dep_group)) { + diag "Testing with DBICTEST_${type}_DSN needs " . DBIx::Class::Schema::Loader::Optional::Dependencies->req_missing_for($dep_group); next; } - $dsns{$_}{dsn} = $ENV{"DBICTEST_${_}_DSN"}; - $dsns{$_}{user} = $ENV{"DBICTEST_${_}_USER"}; - $dsns{$_}{password} = $ENV{"DBICTEST_${_}_PASS"}; - $dsns{$_}{connect_info_opts} = { on_connect_call => 'use_softcommit' } - if /\AFIREBIRD(?:_INTERBASE)?\z/; + $dsns{$type} = \%conninfo; + $dsns{$type}{connect_info_opts} = { on_connect_call => 'use_softcommit' } + if $type =~ /\AFIREBIRD(?:_INTERBASE)?\z/; }; -plan skip_all => 'You need to set the DBICTEST_FIREBIRD_DSN, _USER and _PASS and/or the DBICTEST_FIREBIRD_ODBC_DSN, _USER and _PASS and/or the DBICTEST_FIREBIRD_INTERBASE_DSN, _USER and _PASS environment variables' - unless %dsns; - my $schema; my $tester = dbixcsl_common_tests->new(