X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F10_01sqlite_common.t;h=1820e7aabf17b47d31db3952b9e248a4d079d185;hb=9f869cd6f4312febdb00161ddae02144d956871b;hp=93a499c028c69925441bff53d77d78bb3898c2f8;hpb=3b61a7ca5fade36343b5abdd11bb6b29e47e043c;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/10_01sqlite_common.t b/t/10_01sqlite_common.t index 93a499c..1820e7a 100644 --- a/t/10_01sqlite_common.t +++ b/t/10_01sqlite_common.t @@ -1,4 +1,5 @@ use strict; +use warnings; use Test::More; use lib qw(t/lib); use dbixcsl_common_tests; @@ -10,7 +11,7 @@ my $class = $@ ? 'SQLite2' : 'SQLite'; my $tester = dbixcsl_common_tests->new( vendor => 'SQLite', auto_inc_pk => 'INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT', - dsn => "dbi:$class:dbname=$tdir/sqlite_test", + dsn => "dbi:$class:dbname=$tdir/sqlite_test.db", user => '', password => '', connect_info_opts => { @@ -127,12 +128,19 @@ my $tester = dbixcsl_common_tests->new( on delete restrict on update set null deferrable ) }, + # test inline constraint + q{ + create table extra_loader_test10 ( + id integer primary key, + eight_id int references extra_loader_test8(id) on delete restrict on update set null deferrable + ) + }, ], pre_drop_ddl => [ 'DROP VIEW extra_loader_test5' ], drop => [ qw/extra_loader_test1 extra_loader_test2 extra_loader_test3 extra_loader_test4 extra_loader_test6 extra_loader_test7 - extra_loader_test8 extra_loader_test9 / ], - count => 15, + extra_loader_test8 extra_loader_test9 extra_loader_test10 / ], + count => 20, run => sub { my ($schema, $monikers, $classes) = @_; @@ -163,6 +171,10 @@ my $tester = dbixcsl_common_tests->new( is $schema->resultset($monikers->{extra_loader_test5})->result_source->column_info('person_id')->{data_type}, 'integer', 'columns for views are introspected'; + # test that views are marked as such + isa_ok $schema->resultset($monikers->{extra_loader_test5})->result_source, 'DBIx::Class::ResultSource::View', + 'view result source'; + isnt $schema->resultset($monikers->{extra_loader_test6})->result_source->column_info('id1')->{is_auto_increment}, 1, q{two integer PKs don't get marked autoinc}; @@ -181,6 +193,18 @@ my $tester = dbixcsl_common_tests->new( is $rel_info->{attrs}{is_deferrable}, 1, 'DEFERRABLE clause introspected correctly'; + + ok (($rel_info = $schema->source('ExtraLoaderTest10')->relationship_info('eight')), + 'got rel info'); + + is $rel_info->{attrs}{on_delete}, 'RESTRICT', + 'ON DELETE clause introspected correctly for inline FK'; + + is $rel_info->{attrs}{on_update}, 'SET NULL', + 'ON UPDATE clause introspected correctly for inline FK'; + + is $rel_info->{attrs}{is_deferrable}, 1, + 'DEFERRABLE clause introspected correctly for inline FK'; }, }, ); @@ -188,5 +212,5 @@ my $tester = dbixcsl_common_tests->new( $tester->run_tests(); END { - unlink "$tdir/sqlite_test" unless $ENV{SCHEMA_LOADER_TESTS_NOCLEANUP}; + unlink "$tdir/sqlite_test.db" unless $ENV{SCHEMA_LOADER_TESTS_NOCLEANUP}; }