Fix "table" parameter in col_accessor_map callback (RT#84050)
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / lib / dbixcsl_common_tests.pm
index 5d6ca22..8b174d0 100644 (file)
@@ -113,7 +113,7 @@ sub run_tests {
 
     my $extra_count = $self->{extra}{count} || 0;
 
-    my $col_accessor_map_tests = 5;
+    my $col_accessor_map_tests = 6;
     my $num_rescans = 6;
     $num_rescans++ if $self->{vendor} eq 'mssql';
     $num_rescans++ if $self->{vendor} eq 'Firebird';
@@ -292,13 +292,13 @@ sub setup_schema {
             $expected_count += grep $_ =~ SOURCE_DDL,
                 @{ $self->{extra}{create} || [] };
 
-            $expected_count -= grep /CREATE TABLE/, @statements_inline_rels
+            $expected_count -= grep /CREATE TABLE/i, @statements_inline_rels
                 if $self->{skip_rels} || $self->{no_inline_rels};
 
-            $expected_count -= grep /CREATE TABLE/, @statements_implicit_rels
+            $expected_count -= grep /CREATE TABLE/i, @statements_implicit_rels
                 if $self->{skip_rels} || $self->{no_implicit_rels};
 
-            $expected_count -= grep /CREATE TABLE/, ($self->{vendor} =~ /sqlite/ ? @statements_advanced_sqlite : @statements_advanced), @statements_reltests
+            $expected_count -= grep /CREATE TABLE/i, ($self->{vendor} =~ /sqlite/ ? @statements_advanced_sqlite : @statements_advanced), @statements_reltests
                 if $self->{skip_rels};
         }
 
@@ -789,16 +789,28 @@ qr/\n__PACKAGE__->load_components\("TestSchemaComponent", "\+TestSchemaComponent
         ok ((not try { exists $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{is_deferrable} }),
             'has_many does not have is_deferrable');
 
-        like try { $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{on_delete} },
-            qr/^(?:CASCADE|RESTRICT)\z/,
-            "on_delete is either CASCADE or RESTRICT on belongs_to by default";
+        my $default_on_clause = $self->{default_on_clause} || 'CASCADE';
 
-        like try { $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{on_update} },
-            qr/^(?:CASCADE|RESTRICT)\z/,
-            "on_update is either CASCADE or RESTRICT on belongs_to by default";
+        my $default_on_delete_clause = $self->{default_on_delete_clause} || $default_on_clause;
 
-        is try { $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{is_deferrable} }, 1,
-            "is_deferrable => 1 on belongs_to by default";
+        is try { $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{on_delete} },
+            $default_on_delete_clause,
+            "on_delete is $default_on_delete_clause on belongs_to by default";
+
+        my $default_on_update_clause = $self->{default_on_update_clause} || $default_on_clause;
+
+        is try { $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{on_update} },
+            $default_on_update_clause,
+            "on_update is $default_on_update_clause on belongs_to by default";
+
+        my $default_is_deferrable = $self->{default_is_deferrable};
+
+        $default_is_deferrable = 1
+            if not defined $default_is_deferrable;
+
+        is try { $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{is_deferrable} },
+            $default_is_deferrable,
+            "is_deferrable => $default_is_deferrable on belongs_to by default";
 
         ok ((not try { exists $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{cascade_delete} }),
             'belongs_to does not have cascade_delete');
@@ -2279,7 +2291,7 @@ sub test_col_accessor_map {
 
         is( $default_name, 'crumb_crisp_coating', 'col_accessor_map was passed the default name' );
         ok( $context->{$_}, "col_accessor_map func was passed the $_" )
-            for qw( table_name table_class table_moniker schema_class );
+            for qw( table table_name table_class table_moniker schema_class );
 
         return 'trivet';
     } else {