X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F74mssql.t;h=f24e1967ca8841f7eafb9eb479f186e20870826e;hb=f4dc39d649672ff4452cf827ca204a1e937bc8b7;hp=c0c3e4294feb3d8443ab4e024ba5ac6f10e5ab38;hpb=2c2bc4e58c2146670960fc1a0a2ae802cb650506;p=dbsrgits%2FDBIx-Class.git diff --git a/t/74mssql.t b/t/74mssql.t index c0c3e42..f24e196 100644 --- a/t/74mssql.t +++ b/t/74mssql.t @@ -1,30 +1,25 @@ +BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) } +use DBIx::Class::Optional::Dependencies -skip_all_without => 'test_rdbms_mssql_sybase'; + use strict; use warnings; use Test::More; use Test::Exception; use Scalar::Util 'weaken'; -use DBIx::Class::Optional::Dependencies (); -use lib qw(t/lib); +use DBIx::Class::_Util 'sigwarn_silencer'; + use DBICTest; my ($dsn, $user, $pass) = @ENV{map { "DBICTEST_MSSQL_${_}" } qw/DSN USER PASS/}; - -plan skip_all => 'Set $ENV{DBICTEST_MSSQL_DSN}, _USER and _PASS to run this test' - unless ($dsn); - - -plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_rdbms_mssql_sybase') - unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_rdbms_mssql_sybase'); - { - my $srv_ver = DBICTest->connect_schema($dsn, $user, $pass)->storage->_server_info->{dbms_version}; + my $srv_ver = DBICTest::Schema->connect($dsn, $user, $pass)->storage->_server_info->{dbms_version}; ok ($srv_ver, 'Got a test server version on fresh schema: ' . ($srv_ver||'???') ); } my $schema; -my $testdb_supports_placeholders = DBICTest->connect_schema($dsn, $user, $pass) +my $testdb_supports_placeholders = DBICTest::Schema->connect($dsn, $user, $pass) ->storage ->_supports_typeless_placeholders; my @test_storages = ( @@ -33,7 +28,7 @@ my @test_storages = ( ); for my $storage_type (@test_storages) { - $schema = DBICTest->connect_schema($dsn, $user, $pass); + $schema = DBICTest::Schema->connect($dsn, $user, $pass); if ($storage_type =~ /NoBindVars\z/) { # since we want to use the nobindvar - disable the capability so the @@ -209,7 +204,7 @@ SQL $schema->storage->_get_dbh->disconnect; - lives_and { + lives_ok { $wrappers->{$wrapper}->( sub { $rs_cp->create({ amount => 900 + $_ }) for 1..3; }); @@ -235,11 +230,16 @@ SQL weaken(my $a_rs_cp = $artist_rs); - local $TODO = 'Transaction handling with multiple active statements will ' - .'need eager cursor support.' - unless $wrapper eq 'no_transaction'; + $wrapper ne 'no_transaction' + and + ( + local $TODO = 'Transaction handling with multiple active statements will ' + .'need eager cursor support.', - lives_and { + local local $SIG{__WARN__} = sigwarn_silencer qr/disconnect invalidates .+? active statement/ + ); + + lives_ok { my @results; $wrappers->{$wrapper}->( sub { @@ -272,7 +272,8 @@ SQL } { - my $schema = DBICTest->connect_schema($dsn, $user, $pass); + my $schema = DBICTest::Schema->clone; + $schema->connection($dsn, $user, $pass); like $schema->storage->sql_maker->{limit_dialect}, qr/^(?:Top|RowNumberOver)\z/, @@ -283,7 +284,8 @@ SQL # test op-induced autoconnect lives_ok (sub { - my $schema = DBICTest->connect_schema($dsn, $user, $pass); + my $schema = DBICTest::Schema->clone; + $schema->connection($dsn, $user, $pass); my $artist = $schema->resultset ('Artist')->search ({}, { order_by => 'artistid' })->next; is ($artist->id, 1, 'Artist retrieved successfully'); @@ -292,7 +294,7 @@ lives_ok (sub { # test AutoCommit=0 { local $ENV{DBIC_UNSAFE_AUTOCOMMIT_OK} = 1; - my $schema2 = DBICTest->connect_schema($dsn, $user, $pass, { AutoCommit => 0 }); + my $schema2 = DBICTest::Schema->connect($dsn, $user, $pass, { AutoCommit => 0 }); my $rs = $schema2->resultset('Money');