X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F11mysql_common.t;h=f917c90e303aa6f51457decd343d7c67992667b6;hb=e0699cd9360abcf912874e6020dc5dfe164c3d9e;hp=bc6f413b9ef5f12572c0f45dbd3f2ef9d94c985c;hpb=d3c6d0b903d122b298aac4e674907eda74dee62b;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/11mysql_common.t b/t/11mysql_common.t index bc6f413..f917c90 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} || ''; @@ -10,14 +11,56 @@ my $test_innodb = $ENV{DBICTEST_MYSQL_INNODB} || 0; my $skip_rels_msg = 'You need to set the DBICTEST_MYSQL_INNODB environment variable to test relationships'; my $tester = dbixcsl_common_tests->new( - vendor => 'Mysql', - auto_inc_pk => 'INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT', - innodb => $test_innodb ? q{Engine=InnoDB} : 0, - dsn => $dsn, - user => $user, - password => $password, - skip_rels => $test_innodb ? 0 : $skip_rels_msg, - no_inline_rels => 1, + vendor => 'Mysql', + auto_inc_pk => 'INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT', + innodb => $test_innodb ? q{Engine=InnoDB} : 0, + dsn => $dsn, + user => $user, + password => $password, + 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}); + my $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 ) {