Changeset 2858
- Timestamp:
- 07/29/08 19:49:59 (4 months ago)
- Files:
-
- branches/release-42/t/ddl-tests.pl (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/release-42/t/ddl-tests.pl
r2853 r2858 75 75 76 76 77 package Ddltest::Multikey; 78 use base qw( MT::Object ); 79 80 __PACKAGE__->install_properties({ 81 column_defs => { 82 fkey => 'integer not null', 83 type => 'string(255) not null', 84 value => 'string(1024)', 85 }, 86 datasource => 'multikey', 87 primary_key => [ qw( fkey type ) ], 88 cacheable => 0, 89 }); 90 91 77 92 package Ddltest::InvalidType; 78 93 use base qw( MT::Object ); … … 209 224 } 210 225 211 if ( $expected->{type} ne $got->{type}) {226 if (!defined $got->{type} || $expected->{type} ne $got->{type}) { 212 227 fail($reason); 213 228 diag("Expected type ", $expected->{type}, " but got ", $got->{type}); … … 306 321 } 307 322 323 sub multikey_defs : Tests(8) { 324 my $self = shift; 325 326 my $class_defs = Ddltest::Multikey->column_defs(); 327 ok($class_defs, 'Multikey class DDL settings are defined'); 328 329 # TODO: multikeys aren't reported as keys. 330 is_def($class_defs->{fkey}, _def(1, 'integer', auto => 0, key => 0), 'Multikey id column def is correct'); 331 is_def($class_defs->{type}, _def(1, 'string', size => 255, key => 0), 'Multikey type column def is correct'); 332 is_def($class_defs->{value}, _def(0, 'string', size => 1024, key => 0), 'Multikey value column def is correct'); 333 334 $self->_setup_table('Ddltest::Multikey'); 335 my $table_defs = MT::Object->driver->dbd->ddl_class->column_defs('Ddltest::Multikey'); 336 ok($table_defs, 'Multikey table DDL settings are defined'); 337 338 is_def($table_defs->{fkey}, _def(1, 'integer', auto => 0), 'Multikey id column def is correct'); 339 is_def($table_defs->{type}, _def(1, 'string', size => 255), 'Multikey type column def is correct'); 340 is_def($table_defs->{value}, _def(0, 'string', size => 1024), 'Multikey value column def is correct'); 341 } 342 308 343 sub invalid_type : Tests(3) { 309 344 my $self = shift; … … 319 354 } 320 355 321 sub fixable : Tests(12) { 322 my $self = shift; 356 sub _setup_table { 357 my $self = shift; 358 my ($class) = @_; 323 359 324 360 my $driver = MT::Object->dbi_driver; … … 327 363 328 364 eval { 329 if ($driver->table_exists( 'Ddltest::Fixable')) {330 my $sql = $ddl_class->drop_table_sql( 'Ddltest::Fixable');365 if ($driver->table_exists($class)) { 366 my $sql = $ddl_class->drop_table_sql($class); 331 367 $dbh->do($sql); 332 368 } 333 369 }; 334 370 eval { 335 my $sql = $ddl_class->create_table_sql( 'Ddltest::Fixable');371 my $sql = $ddl_class->create_table_sql($class); 336 372 $dbh->do($sql); 337 373 }; 374 } 375 376 sub fixable : Tests(12) { 377 my $self = shift; 378 379 my $driver = MT::Object->dbi_driver; 380 my $dbh = $driver->rw_handle; 381 my $ddl_class = $driver->dbd->ddl_class; 382 383 $self->_setup_table('Ddltest::Fixable'); 338 384 for my $i (1..5) { 339 385 my $obj = Ddltest::Fixable->new;
