Changeset 2853

Show
Ignore:
Timestamp:
07/29/08 17:46:50 (4 months ago)
Author:
mpaschal
Message:

Test column definitions on the declaration side too
Look for whether a class key is a 'key' (table defs don't expose that)
BugzID: 80847

Files:

Legend:

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

    r2705 r2853  
    187187 
    188188sub _def { 
    189     my ($auto, $not_null, $type, $size) = @_; 
     189    my ($not_null, $type, %param) = @_; 
    190190    my $def = { 
    191         auto => $auto, 
    192191        not_null => $not_null, 
    193192        type => $type, 
     193        %param, 
    194194    }; 
    195     $def->{size} = $size if defined $size; 
    196195    return $def; 
    197196} 
     
    200199    my ($got, $expected, $reason) = @_; 
    201200 
    202     for my $field (qw( not_null auto )) { 
     201    for my $field (qw( not_null auto key )) { 
    203202        if ($expected->{$field} xor $got->{$field}) { 
    204203            fail($reason); 
     
    225224} 
    226225 
     226sub class_defs : Tests(26) { 
     227    my $defs = Ddltest->column_defs(); 
     228    ok($defs, 'Ddltest class DDL settings are defined'); 
     229 
     230    is_def($defs->{id}, _def(1, 'integer', auto => 1, key => 1), 'Ddltest id column def is correct'); 
     231 
     232    is_def($defs->{string_25},    _def(0, 'string', size => 25),   'Ddltest string_25 column def is correct'); 
     233    is_def($defs->{string_25_nn}, _def(1, 'string', size => 25),   'Ddltest string_25_nn column def is correct'); 
     234    is_def($defs->{string_255},   _def(0, 'string', size => 255),  'Ddltest string_255 column def is correct'); 
     235    is_def($defs->{string_1024},  _def(0, 'string', size => 1024), 'Ddltest string_1024 column def is correct'); 
     236 
     237    is_def($defs->{int_bool},     _def(0, 'boolean'),  'Ddltest int_bool column def is correct'); 
     238    is_def($defs->{int_bool_nn},  _def(1, 'boolean'),  'Ddltest int_bool_nn column def is correct'); 
     239    is_def($defs->{int_small},    _def(0, 'smallint'), 'Ddltest int_small column def is correct'); 
     240    is_def($defs->{int_small_nn}, _def(1, 'smallint'), 'Ddltest int_small_nn column def is correct'); 
     241    is_def($defs->{int_med},      _def(0, 'integer'),  'Ddltest int_med column def is correct'); 
     242    is_def($defs->{int_med_nn},   _def(1, 'integer'),  'Ddltest int_med_nn column def is correct'); 
     243    is_def($defs->{int_big},      _def(0, 'bigint'),   'Ddltest int_big column def is correct'); 
     244    is_def($defs->{int_big_nn},   _def(1, 'bigint'),   'Ddltest int_big_nn column def is correct'); 
     245    is_def($defs->{float},        _def(0, 'float'),    'Ddltest float column def is correct'); 
     246    is_def($defs->{float_nn},     _def(1, 'float'),    'Ddltest float_nn column def is correct'); 
     247    is_def($defs->{text},         _def(0, 'text'),     'Ddltest text column def is correct'); 
     248    is_def($defs->{text_nn},      _def(1, 'text'),     'Ddltest text_nn column def is correct'); 
     249    is_def($defs->{blob},         _def(0, 'blob'),     'Ddltest blob column def is correct'); 
     250    is_def($defs->{blob_nn},      _def(1, 'blob'),     'Ddltest blob_nn column def is correct'); 
     251    is_def($defs->{datetime},     _def(0, 'datetime'), 'Ddltest datetime column def is correct'); 
     252    is_def($defs->{datetime_nn},  _def(1, 'datetime'), 'Ddltest datetime_nn column def is correct'); 
     253 
     254    # audit fields 
     255    is_def($defs->{created_on},  _def(0, 'datetime'), 'Ddltest created_on column def is correct'); 
     256    is_def($defs->{created_by},  _def(0, 'integer'),  'Ddltest created_by column def is correct'); 
     257    is_def($defs->{modified_on}, _def(0, 'datetime'), 'Ddltest modified_on column def is correct'); 
     258    is_def($defs->{modified_by}, _def(0, 'integer'),  'Ddltest modified_by column def is correct'); 
     259} 
     260 
    227261sub table_defs : Tests(26) { 
    228262    my $defs = MT::Object->driver->dbd->ddl_class->column_defs('Ddltest'); 
    229     ok($defs, 'Ddltest DDL settings are defined'); 
    230  
    231     is_def($defs->{id}, _def(1, 1, 'integer'), 'Ddltest id column def is correct'); 
    232  
    233     is_def($defs->{string_25},    _def(0, 0, 'string', 25),   'Ddltest string_25 column def is correct'); 
    234     is_def($defs->{string_25_nn}, _def(0, 1, 'string', 25),   'Ddltest string_25_nn column def is correct'); 
    235     is_def($defs->{string_255},   _def(0, 0, 'string', 255),  'Ddltest string_255 column def is correct'); 
    236     is_def($defs->{string_1024},  _def(0, 0, 'string', 1024), 'Ddltest string_1024 column def is correct'); 
    237     is_def($defs->{int_bool},     _def(0, 0, 'boolean'),      'Ddltest int_bool column def is correct'); 
    238     is_def($defs->{int_bool_nn},  _def(0, 1, 'boolean'),      'Ddltest int_bool_nn column def is correct'); 
    239     is_def($defs->{int_small},    _def(0, 0, 'smallint'),     'Ddltest int_small column def is correct'); 
    240     is_def($defs->{int_small_nn}, _def(0, 1, 'smallint'),     'Ddltest int_small_nn column def is correct'); 
    241     is_def($defs->{int_med},      _def(0, 0, 'integer'),      'Ddltest int_med column def is correct'); 
    242     is_def($defs->{int_med_nn},   _def(0, 1, 'integer'),      'Ddltest int_med_nn column def is correct'); 
    243     is_def($defs->{int_big},      _def(0, 0, 'bigint'),       'Ddltest int_big column def is correct'); 
    244     is_def($defs->{int_big_nn},   _def(0, 1, 'bigint'),       'Ddltest int_big_nn column def is correct'); 
    245     is_def($defs->{float},        _def(0, 0, 'float'),        'Ddltest float column def is correct'); 
    246     is_def($defs->{float_nn},     _def(0, 1, 'float'),        'Ddltest float_nn column def is correct'); 
    247     is_def($defs->{text},         _def(0, 0, 'text'),         'Ddltest text column def is correct'); 
    248     is_def($defs->{text_nn},      _def(0, 1, 'text'),         'Ddltest text_nn column def is correct'); 
    249     is_def($defs->{blob},         _def(0, 0, 'blob'),         'Ddltest blob column def is correct'); 
    250     is_def($defs->{blob_nn},      _def(0, 1, 'blob'),         'Ddltest blob_nn column def is correct'); 
    251     is_def($defs->{datetime},     _def(0, 0, 'datetime'),     'Ddltest datetime column def is correct'); 
    252     is_def($defs->{datetime_nn},  _def(0, 1, 'datetime'),     'Ddltest datetime_nn column def is correct'); 
     263    ok($defs, 'Ddltest table DDL settings are defined'); 
     264 
     265    is_def($defs->{id}, _def(1, 'integer', auto => 1), 'Ddltest id column def is correct'); 
     266 
     267    is_def($defs->{string_25},    _def(0, 'string', size => 25),   'Ddltest string_25 column def is correct'); 
     268    is_def($defs->{string_25_nn}, _def(1, 'string', size => 25),   'Ddltest string_25_nn column def is correct'); 
     269    is_def($defs->{string_255},   _def(0, 'string', size => 255),  'Ddltest string_255 column def is correct'); 
     270    is_def($defs->{string_1024},  _def(0, 'string', size => 1024), 'Ddltest string_1024 column def is correct'); 
     271 
     272    is_def($defs->{int_bool},     _def(0, 'boolean'),  'Ddltest int_bool column def is correct'); 
     273    is_def($defs->{int_bool_nn},  _def(1, 'boolean'),  'Ddltest int_bool_nn column def is correct'); 
     274    is_def($defs->{int_small},    _def(0, 'smallint'), 'Ddltest int_small column def is correct'); 
     275    is_def($defs->{int_small_nn}, _def(1, 'smallint'), 'Ddltest int_small_nn column def is correct'); 
     276    is_def($defs->{int_med},      _def(0, 'integer'),  'Ddltest int_med column def is correct'); 
     277    is_def($defs->{int_med_nn},   _def(1, 'integer'),  'Ddltest int_med_nn column def is correct'); 
     278    is_def($defs->{int_big},      _def(0, 'bigint'),   'Ddltest int_big column def is correct'); 
     279    is_def($defs->{int_big_nn},   _def(1, 'bigint'),   'Ddltest int_big_nn column def is correct'); 
     280    is_def($defs->{float},        _def(0, 'float'),    'Ddltest float column def is correct'); 
     281    is_def($defs->{float_nn},     _def(1, 'float'),    'Ddltest float_nn column def is correct'); 
     282    is_def($defs->{text},         _def(0, 'text'),     'Ddltest text column def is correct'); 
     283    is_def($defs->{text_nn},      _def(1, 'text'),     'Ddltest text_nn column def is correct'); 
     284    is_def($defs->{blob},         _def(0, 'blob'),     'Ddltest blob column def is correct'); 
     285    is_def($defs->{blob_nn},      _def(1, 'blob'),     'Ddltest blob_nn column def is correct'); 
     286    is_def($defs->{datetime},     _def(0, 'datetime'), 'Ddltest datetime column def is correct'); 
     287    is_def($defs->{datetime_nn},  _def(1, 'datetime'), 'Ddltest datetime_nn column def is correct'); 
    253288 
    254289    # audit fields 
    255     is_def($defs->{created_on},  _def(0, 0, 'datetime'), 'Ddltest created_on column def is correct'); 
    256     is_def($defs->{created_by},  _def(0, 0, 'integer'),  'Ddltest created_by column def is correct'); 
    257     is_def($defs->{modified_on}, _def(0, 0, 'datetime'), 'Ddltest modified_on column def is correct'); 
    258     is_def($defs->{modified_by}, _def(0, 0, 'integer'),  'Ddltest modified_by column def is correct'); 
     290    is_def($defs->{created_on},  _def(0, 'datetime'), 'Ddltest created_on column def is correct'); 
     291    is_def($defs->{created_by},  _def(0, 'integer'),  'Ddltest created_by column def is correct'); 
     292    is_def($defs->{modified_on}, _def(0, 'datetime'), 'Ddltest modified_on column def is correct'); 
     293    is_def($defs->{modified_by}, _def(0, 'integer'),  'Ddltest modified_by column def is correct'); 
    259294} 
    260295