X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F11mysql_common.t;h=95404a662fc6da4999be85f884f41fbf5670ba39;hb=b4dcbcc573df920180bdda4b8f3f226a8a8282f9;hp=dac7a510601f84128ffb523d43cd39fb25b74600;hpb=52bf3f264b3d5e1a0c494e82e13fb377eaa28a6f;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/11mysql_common.t b/t/11mysql_common.t index dac7a51..95404a6 100644 --- a/t/11mysql_common.t +++ b/t/11mysql_common.t @@ -1,6 +1,7 @@ use strict; -use lib qw( . ./t ); +use lib qw(t/lib); use dbixcsl_common_tests; +use Test::More; my $dsn = $ENV{DBICTEST_MYSQL_DSN} || ''; my $user = $ENV{DBICTEST_MYSQL_USER} || ''; @@ -19,6 +20,47 @@ my $tester = dbixcsl_common_tests->new( skip_rels => $test_innodb ? 0 : $skip_rels_msg, no_inline_rels => 1, no_implicit_rels => 1, + extra => { + create => [ + qq{ + CREATE TABLE mysql_loader_test1 ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY, + value ENUM('foo', 'bar', 'baz') + ) + }, + qq{ + CREATE TABLE mysql_loader_test2 ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY, + somedate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + somestr VARCHAR(100) NOT NULL DEFAULT 'foo' + ) + }, + ], + drop => [ qw/ mysql_loader_test1 mysql_loader_test2 / ], + count => 5, + run => sub { + my ($schema, $monikers, $classes) = @_; + + my $rs = $schema->resultset($monikers->{mysql_loader_test1}); + my $column_info = $rs->result_source->column_info('id'); + + is($column_info->{extra}->{unsigned}, 1, 'Unsigned MySQL columns'); + + $column_info = $rs->result_source->column_info('value'); + + like($column_info->{data_type}, qr/^enum$/i, 'MySQL ENUM type'); + is_deeply($column_info->{extra}->{list}, [qw/foo bar baz/], + 'MySQL ENUM values'); + + $rs = $schema->resultset($monikers->{mysql_loader_test2}); + $column_info = $rs->result_source->column_info('somedate'); + my $default = $column_info->{default_value}; + ok ((ref($default) eq 'SCALAR'), + 'CURRENT_TIMESTAMP default_value is a scalar ref'); + like $$default, qr/^CURRENT_TIMESTAMP\z/i, + 'CURRENT_TIMESTAMP default eq "CURRENT_TIMESTAMP"'; + }, + } ); if( !$dsn || !$user ) {