X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F11mysql_common.t;h=bd86d936900918661893257e97316aa3e05f0e40;hb=7cb9244f9742355f71a24efa0d6d4c076c8a5bf3;hp=1929a685c6b10df09eb3c9a7ca5c5cbb11c479d5;hpb=9e978a19c9486474511d003abcf63d0a559d20f5;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/11mysql_common.t b/t/11mysql_common.t index 1929a68..bd86d93 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,41 @@ 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 => q{Engine='InnoDB'}, - 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') + ) + }, + ], + drop => [ qw/ mysql_loader_test1 / ], + count => 3, + 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'); + }, + } ); if( !$dsn || !$user ) {