Changeset 2861

Show
Ignore:
Timestamp:
07/29/08 22:12:10 (4 months ago)
Author:
mpaschal
Message:

Test empirically if multicolumn primary keys are constrained
BugzID: 80847

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/release-42/t/ddl-tests.pl

    r2858 r2861  
    341341} 
    342342 
     343sub multikey_unique : Tests(1) { 
     344    my $self = shift; 
     345    $self->_setup_table('Ddltest::Multikey'); 
     346 
     347    my $orig = Ddltest::Multikey->new(); 
     348    $orig->set_values({ 
     349        fkey => 7, 
     350        type => 'awesome', 
     351        value => 'these truths', 
     352    }); 
     353    $orig->save or die "Could not save original multikey instance: ", $orig->errstr; 
     354 
     355    # Test empirically if the multifield primary key is uniquely constrained 
     356    # by trying to insert another. 
     357    my $driver = MT::Object->dbi_driver; 
     358    my $dbh    = $driver->rw_handle; 
     359    my $dbd    = $driver->dbd; 
     360 
     361    my $table_name = Ddltest::Multikey->table_name; 
     362    my $sql = join q{ }, 'INSERT INTO', $table_name, '(', 
     363        join(q{, }, map { $dbd->db_column_name($table_name, $_) } qw( fkey type value )), 
     364        ') VALUES (?, ?, ?)'; 
     365    my $ret = eval { $dbh->do($sql, {}, 7, 'awesome', 'self-evident') ? 1 : 0 }; 
     366    my $err = $ret         ? q{} 
     367            : defined $ret ? $dbh->errstr 
     368            :                $@ 
     369            ; 
     370    ok(!$ret, q{Duplicate multikey instance wouldn't insert}); 
     371    diag('Saving error: ', $err) if !$ret; 
     372} 
     373 
    343374sub invalid_type : Tests(3) { 
    344375    my $self = shift;