(travis) Remove makefile fixup, now hardcoded in the subrepo
[dbsrgits/DBIx-Class.git] / t / 86sqlt.t
index 5726870..486b5ed 100644 (file)
@@ -1,18 +1,15 @@
+BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
+use DBIx::Class::Optional::Dependencies -skip_all_without => 'deploy';
+
 use strict;
 use warnings;
 
 use Test::More;
-use lib qw(t/lib);
-use DBICTest;
-
+use Test::Warn;
 use Scalar::Util 'blessed';
 
-BEGIN {
-  require DBIx::Class;
-  plan skip_all =>
-      'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy')
-    unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy')
-}
+
+use DBICTest;
 
 my $custom_deployment_statements_called = 0;
 
@@ -22,11 +19,10 @@ sub DBICTest::Schema::deployment_statements {
   return $self->next::method(@_);
 }
 
-
 # Check deployment statements ctx sensitivity
 {
-  my $schema = DBICTest->init_schema (no_deploy => 1);
-  my $not_first_table_creation_re = qr/CREATE TABLE fourkeys_to_twokeys/;
+  my $schema = DBICTest->init_schema (no_deploy => 1, quote_names => 1);
+  my $not_first_table_creation_re = qr/CREATE TABLE "fourkeys_to_twokeys"/;
 
   my $statements = $schema->deployment_statements;
   like (
@@ -88,6 +84,7 @@ my $schema = DBICTest->init_schema (no_deploy => 1);
 {
   my $deploy_hook_called = 0;
   $custom_deployment_statements_called = 0;
+  my $sqlt_type = $schema->storage->sqlt_type;
 
   # replace the sqlt calback with a custom version ading an index
   $schema->source('Track')->sqlt_deploy_callback(sub {
@@ -97,11 +94,11 @@ my $schema = DBICTest->init_schema (no_deploy => 1);
 
     is (
       $sqlt_table->schema->translator->producer_type,
-      join ('::', 'SQL::Translator::Producer', $schema->storage->sqlt_type),
+      join ('::', 'SQL::Translator::Producer', $sqlt_type),
       'Production type passed to translator object',
     );
 
-    if ($schema->storage->sqlt_type eq 'SQLite' ) {
+    if ($sqlt_type eq 'SQLite' ) {
       $sqlt_table->add_index( name => 'track_title', fields => ['title'] )
         or die $sqlt_table->error;
     }
@@ -117,19 +114,15 @@ my $schema = DBICTest->init_schema (no_deploy => 1);
 
 my $translator = SQL::Translator->new(
   parser_args => {
-    'DBIx::Schema' => $schema,
+    dbic_schema => $schema,
   },
   producer_args => {},
 );
 
-{
-    my $warn = '';
-    local $SIG{__WARN__} = sub { $warn = shift };
-
+warnings_exist {
     my $relinfo = $schema->source('Artist')->relationship_info ('cds');
     local $relinfo->{attrs}{on_delete} = 'restrict';
 
-
     $translator->parser('SQL::Translator::Parser::DBIx::Class');
     $translator->producer('SQLite');
 
@@ -138,13 +131,9 @@ my $translator = SQL::Translator->new(
     ok($output, "SQLT produced someoutput")
       or diag($translator->error);
 
-
-    like (
-      $warn,
-      qr/SQLT attribute .+? was supplied for relationship .+? which does not appear to be a foreign constraint/,
-      'Warn about dubious on_delete/on_update attributes',
-    );
-}
+} [
+  (qr/SQLT attribute .+? was supplied for relationship .+? which does not appear to be a foreign constraint/) x 2
+], 'Warn about dubious on_delete/on_update attributes';
 
 # Note that the constraints listed here are the only ones that are tested -- if
 # more exist in the Schema than are listed here and all listed constraints are