X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F71mysql.t;h=45650a597deb483139214449220ebb5fe6c0cad2;hb=84e4e006430911fb5aa1d73d8a760bf4455a6378;hp=e1e68ee83628e26e8a86e2a5847e2e9ac751bf8e;hpb=b6a469f7cbcc6114eb59a8557906af4ec6b0e9a4;p=dbsrgits%2FDBIx-Class.git diff --git a/t/71mysql.t b/t/71mysql.t index e1e68ee..45650a5 100644 --- a/t/71mysql.t +++ b/t/71mysql.t @@ -1,3 +1,5 @@ +use DBIx::Class::Optional::Dependencies -skip_all_without => 'test_rdbms_mysql'; + use strict; use warnings; @@ -11,16 +13,9 @@ use DBIx::Class::Optional::Dependencies (); use lib qw(t/lib); use DBICTest; -use DBIC::SqlMakerTest; - -plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_rdbms_mysql') - unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_rdbms_mysql'); my ($dsn, $user, $pass) = @ENV{map { "DBICTEST_MYSQL_${_}" } qw/DSN USER PASS/}; -plan skip_all => 'Set $ENV{DBICTEST_MYSQL_DSN}, _USER and _PASS to run this test' - unless ($dsn && $user); - my $schema = DBICTest::Schema->connect($dsn, $user, $pass, { quote_names => 1 }); my $dbh = $schema->storage->dbh; @@ -101,30 +96,35 @@ lives_ok { }); } 'LOCK IN SHARE MODE select works'; +my ($int_type_name, @undef_default) = DBIx::Class::_ENV_::STRESSTEST_COLUMN_INFO_UNAWARE_STORAGE + ? ('integer') + : ( 'INT', default_value => undef ) +; + my $test_type_info = { 'artistid' => { - 'data_type' => 'INT', + 'data_type' => $int_type_name, 'is_nullable' => 0, 'size' => 11, - 'default_value' => undef, + @undef_default, }, 'name' => { 'data_type' => 'VARCHAR', 'is_nullable' => 1, 'size' => 100, - 'default_value' => undef, + @undef_default, }, 'rank' => { - 'data_type' => 'INT', + 'data_type' => $int_type_name, 'is_nullable' => 0, 'size' => 11, - 'default_value' => 13, + DBIx::Class::_ENV_::STRESSTEST_COLUMN_INFO_UNAWARE_STORAGE ? () : ( 'default_value' => '13' ), }, 'charfield' => { 'data_type' => 'CHAR', 'is_nullable' => 1, 'size' => 10, - 'default_value' => undef, + @undef_default, }, }; @@ -179,6 +179,10 @@ SKIP: { $test_type_info->{charfield}->{data_type} = 'VARCHAR'; } + if (DBIx::Class::_ENV_::STRESSTEST_COLUMN_INFO_UNAWARE_STORAGE) { + $_->{data_type} = lc $_->{data_type} for values %$test_type_info; + } + my $type_info = $schema->storage->columns_info_for('artist'); is_deeply($type_info, $test_type_info, 'columns_info_for - column data types'); } @@ -285,15 +289,9 @@ NULLINSEARCH: { is ($rs->count, 10, '10 artists present'); - my $orig_debug = $schema->storage->debug; - $schema->storage->debug(1); - my $query_count; - $schema->storage->debugcb(sub { $query_count++ }); - - $query_count = 0; - $complex_rs->delete; - - is ($query_count, 1, 'One delete query fired'); + $schema->is_executed_querycount( sub { + $complex_rs->delete; + }, 1, 'One delete query fired' ); is ($rs->count, 0, '10 Artists correctly deleted'); $rs->create({ @@ -302,15 +300,13 @@ NULLINSEARCH: { }); is ($rs->count, 1, 'Artist with cd created'); - $query_count = 0; - $schema->resultset('CD')->search_related('artist', - { 'artist.name' => { -like => 'baby_with_%' } } - )->delete; - is ($query_count, 1, 'And one more delete query fired'); - is ($rs->count, 0, 'Artist with cd deleted'); - $schema->storage->debugcb(undef); - $schema->storage->debug($orig_debug); + $schema->is_executed_querycount( sub { + $schema->resultset('CD')->search_related('artist', + { 'artist.name' => { -like => 'baby_with_%' } } + )->delete; + }, 1, 'And one more delete query fired'); + is ($rs->count, 0, 'Artist with cd deleted'); } ZEROINSEARCH: { @@ -361,8 +357,8 @@ ZEROINSEARCH: { ]}); warnings_exist { is_deeply ( - [ $restrict_rs->get_column('y')->all ], - [ $y_rs->all ], + [ sort $restrict_rs->get_column('y')->all ], + [ sort $y_rs->all ], 'Zero year was correctly excluded from resultset', ) } qr/ \QUse of distinct => 1 while selecting anything other than a column \E