Massive cleanup of DateTime test dependencies, other interim
[dbsrgits/DBIx-Class.git] / t / 99dbic_sqlt_parser.t
index 81381e9..61202b7 100644 (file)
@@ -3,27 +3,33 @@ use warnings;
 
 use Test::More;
 use Test::Exception;
-use lib qw(t/lib);
-use DBICTest;
-use DBICTest::Schema;
 use Scalar::Util ();
 
 BEGIN {
-  require DBIx::Class::Storage::DBI;
+  require DBIx::Class;
   plan skip_all =>
-      'Test needs SQL::Translator ' . DBIx::Class::Storage::DBI->_sqlt_minimum_version
-    if not DBIx::Class::Storage::DBI->_sqlt_version_ok;
+      'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy')
+    unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy')
 }
 
+use lib qw(t/lib);
+use DBICTest;
+use DBICTest::Schema;
+
 # Test for SQLT-related leaks
 {
   my $s = DBICTest::Schema->clone;
-  create_schema ({ schema => $s });
+  my $sqlt_schema = create_schema ({ schema => $s });
   Scalar::Util::weaken ($s);
 
   ok (!$s, 'Schema not leaked');
+
+  isa_ok ($sqlt_schema, 'SQL::Translator::Schema', 'SQLT schema object produced');
 }
 
+# make sure classname-style works
+lives_ok { isa_ok (create_schema ({ schema => 'DBICTest::Schema' }), 'SQL::Translator::Schema', 'SQLT schema object produced') };
+
 
 my $schema = DBICTest->init_schema();
 # Dummy was yanked out by the sqlt hook test
@@ -35,43 +41,50 @@ my @sources = grep
   $schema->sources
 ;
 
-{ 
+my $idx_exceptions = {
+    'Artwork'       => -1,
+    'ForceForeign'  => -1,
+    'LinerNotes'    => -1,
+    'TwoKeys'       => -1, # TwoKeys has the index turned off on the rel def
+};
+
+{
   my $sqlt_schema = create_schema({ schema => $schema, args => { parser_args => { } } });
 
   foreach my $source_name (@sources) {
     my $table = get_table($sqlt_schema, $schema, $source_name);
 
     my $fk_count = scalar(grep { $_->type eq 'FOREIGN KEY' } $table->get_constraints);
+    $fk_count += $idx_exceptions->{$source_name} || 0;
     my @indices = $table->get_indices;
 
     my $index_count = scalar(@indices);
-    $index_count++ if ($source_name eq 'TwoKeys'); # TwoKeys has the index turned off on the rel def
     is($index_count, $fk_count, "correct number of indices for $source_name with no args");
-    
+
     for my $index (@indices) {
         my $source = $schema->source($source_name);
-        my $pk_test = join("\x00", sort $source->primary_columns);
-        my $idx_test = join("\x00", sort $index->fields);
+        my $pk_test = join("\x00", $source->primary_columns);
+        my $idx_test = join("\x00", $index->fields);
         isnt ( $pk_test, $idx_test, "no additional index for the primary columns exists in $source_name");
     }
   }
 }
 
-{ 
+{
   my $sqlt_schema = create_schema({ schema => $schema, args => { parser_args => { add_fk_index => 1 } } });
 
-  foreach my $source (@sources) {
-    my $table = get_table($sqlt_schema, $schema, $source);
+  foreach my $source_name (@sources) {
+    my $table = get_table($sqlt_schema, $schema, $source_name);
 
     my $fk_count = scalar(grep { $_->type eq 'FOREIGN KEY' } $table->get_constraints);
+    $fk_count += $idx_exceptions->{$source_name} || 0;
     my @indices = $table->get_indices;
     my $index_count = scalar(@indices);
-    $index_count++ if ($source eq 'TwoKeys'); # TwoKeys has the index turned off on the rel def
-    is($index_count, $fk_count, "correct number of indices for $source with add_fk_index => 1");
+    is($index_count, $fk_count, "correct number of indices for $source_name with add_fk_index => 1");
   }
 }
 
-{ 
+{
   my $sqlt_schema = create_schema({ schema => $schema, args => { parser_args => { add_fk_index => 0 } } });
 
   foreach my $source (@sources) {
@@ -83,7 +96,7 @@ my @sources = grep
   }
 }
 
-{ 
+{
     {
         package # hide from PAUSE
             DBICTest::Schema::NoViewDefinition;