X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F10sqlite_common.t;h=523bd0c5c7eb02b1dd961e8072933c86f39b94d0;hb=4f3ff924f36e5f893c3e75d9703a4f619eb31a41;hp=865835e807e27b9bb92e3c73eca9c7af016e6070;hpb=26da4cc31819b6644891dd1c6da9bc7c9d5b40b9;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/10sqlite_common.t b/t/10sqlite_common.t index 865835e..523bd0c 100644 --- a/t/10sqlite_common.t +++ b/t/10sqlite_common.t @@ -12,6 +12,53 @@ my $tester = dbixcsl_common_tests->new( dsn => "dbi:$class:dbname=./t/sqlite_test", user => '', password => '', + connect_info_opts => { + on_connect_do => 'PRAGMA foreign_keys = ON', + }, + loader_options => { preserve_case => 1 }, + data_types => { + # SQLite ignores data types aside from INTEGER pks. + # We just test that they roundtrip sanely. + # + # Numeric types + 'smallint' => { data_type => 'smallint' }, + 'int' => { data_type => 'int' }, + 'integer' => { data_type => 'integer' }, + + # test that type name is lowercased + 'INTEGER' => { data_type => 'integer' }, + + 'bigint' => { data_type => 'bigint' }, + 'float' => { data_type => 'float' }, + 'double precision' => + { data_type => 'double precision' }, + 'real' => { data_type => 'real' }, + + 'float(2)' => { data_type => 'float', size => 2 }, + 'float(7)' => { data_type => 'float', size => 7 }, + + 'decimal' => { data_type => 'decimal' }, + 'dec' => { data_type => 'dec' }, + 'numeric' => { data_type => 'numeric' }, + + 'decimal(3)' => { data_type => 'decimal', size => 3 }, + 'numeric(3)' => { data_type => 'numeric', size => 3 }, + + 'decimal(3,3)' => { data_type => 'decimal', size => [3,3] }, + 'dec(3,3)' => { data_type => 'dec', size => [3,3] }, + 'numeric(3,3)' => { data_type => 'numeric', size => [3,3] }, + + # Date and Time Types + 'date' => { data_type => 'date' }, + 'timestamp DEFAULT CURRENT_TIMESTAMP' + => { data_type => 'timestamp', default_value => \'current_timestamp' }, + 'time' => { data_type => 'time' }, + + # String Types + 'char' => { data_type => 'char' }, + 'char(11)' => { data_type => 'char', size => 11 }, + 'varchar(20)' => { data_type => 'varchar', size => 20 }, + }, extra => { create => [ # 'sqlite_' is reserved, so we use 'extra_' @@ -50,7 +97,7 @@ my $tester = dbixcsl_common_tests->new( ], pre_drop_ddl => [ 'DROP VIEW extra_loader_test5' ], drop => [ qw/extra_loader_test1 extra_loader_test2 extra_loader_test3 extra_loader_test4 / ], - count => 8, + count => 9, run => sub { my ($schema, $monikers, $classes) = @_; @@ -77,6 +124,9 @@ my $tester = dbixcsl_common_tests->new( is ($source->relationships, 2, '2 foreign key constraints found'); + # test that columns for views are picked up + is $schema->resultset($monikers->{extra_loader_test5})->result_source->column_info('person_id')->{data_type}, 'integer', + 'columns for views are introspected'; }, }, );