$num_rescans++ if $self->{vendor} eq 'Firebird';
plan tests => @connect_info *
- (206 + ($self->{skip_rels} ? 5 : $num_rescans * $col_accessor_map_tests) + $extra_count + ($self->{data_type_tests}{test_count} || 0));
+ (207 + $num_rescans * $col_accessor_map_tests + $extra_count + ($self->{data_type_tests}{test_count} || 0));
foreach my $info_idx (0..$#connect_info) {
my $info = $connect_info[$info_idx];
sub run_only_extra_tests {
my ($self, $connect_info) = @_;
- plan tests => @$connect_info * (4 + ($self->{extra}{count} || 0) + ($self->{data_type_tests}{test_count} || 0));
+ plan tests => @$connect_info * (3 + ($self->{extra}{count} || 0) + ($self->{data_type_tests}{test_count} || 0));
rmtree DUMP_DIR;
rel_collision_map => { '^(set_primary_key)\z' => 'caught_rel_collision_%s' },
col_accessor_map => \&test_col_accessor_map,
result_components_map => { LoaderTest2X => 'TestComponentForMap', LoaderTest1 => '+TestComponentForMapFQN' },
+ uniq_to_primary => 1,
%{ $self->{loader_options} || {} },
);
my $standard_sources = not defined $expected_count;
if ($standard_sources) {
- $expected_count = 36;
+ $expected_count = 37;
if (not ($self->{vendor} eq 'mssql' && $connect_info->[0] =~ /Sybase/)) {
$expected_count++ for @{ $self->{data_type_tests}{table_names} || [] };
$warn_count-- for grep { my $w = $_; grep $w =~ $_, @{ $self->{failtrigger_warnings} || [] } } @loader_warnings;
- if ($standard_sources) {
- if($self->{skip_rels}) {
- SKIP: {
- is(scalar(@loader_warnings), $warn_count, "No loader warnings")
- or diag @loader_warnings;
- skip "No missing PK warnings without rels", 1;
- }
- }
- else {
- $warn_count++;
- is(scalar(@loader_warnings), $warn_count, "Expected loader warnings")
- or diag @loader_warnings;
- is(grep(/loader_test9 has no primary key/i, @loader_warnings), 1,
- "Missing PK warning");
- }
- }
- else {
- SKIP: {
- is scalar(@loader_warnings), $warn_count, 'Correct number of warnings'
- or diag @loader_warnings;
- skip "not testing standard sources", 1;
- }
- }
+ is scalar(@loader_warnings), $warn_count, 'Correct number of warnings'
+ or diag @loader_warnings;
}
exit if ($file_count||0) != $expected_count;
my $class35 = $classes->{loader_test35};
my $rsobj35 = $conn->resultset($moniker35);
+ my $moniker50 = $monikers->{loader_test50};
+ my $class50 = $classes->{loader_test50};
+ my $rsobj50 = $conn->resultset($moniker50);
+
isa_ok( $rsobj1, "DBIx::Class::ResultSet" );
isa_ok( $rsobj2, "DBIx::Class::ResultSet" );
isa_ok( $rsobj23, "DBIx::Class::ResultSet" );
isa_ok( $rsobj24, "DBIx::Class::ResultSet" );
isa_ok( $rsobj35, "DBIx::Class::ResultSet" );
+ isa_ok( $rsobj50, "DBIx::Class::ResultSet" );
# check result_namespace
my @schema_dir = split /::/, SCHEMA_CLASS;
'resultset_namespace set correctly on Schema';
my @columns_lt2 = $class2->columns;
- is_deeply( \@columns_lt2, [ qw/id dat dat2 set_primary_key can dbix_class_testcomponent dbix_class_testcomponentmap testcomponent_fqn meta test_role_method test_role_for_map_method/ ], "Column Ordering" );
+ is_deeply( \@columns_lt2, [ qw/id dat dat2 set_primary_key can dbix_class_testcomponent dbix_class_testcomponentmap testcomponent_fqn meta test_role_method test_role_for_map_method crumb_crisp_coating/ ], "Column Ordering" );
is $class2->column_info('can')->{accessor}, 'caught_collision_can',
'accessor for column name that conflicts with a UNIVERSAL method renamed based on col_collision_map';
}
ok($uniq2_test, "Multi-col unique constraint");
+ my %uniq3 = $class50->unique_constraints;
+
+ is_deeply $uniq3{primary}, ['id1', 'id2'],
+ 'unique constraint promoted to primary key with uniq_to_primary';
+
is($moniker2, 'LoaderTest2X', "moniker_map testing");
SKIP: {
);
}
+ is( $class2->column_info('crumb_crisp_coating')->{accessor}, 'trivet',
+ 'col_accessor_map is being run' );
+
SKIP: {
- skip $self->{skip_rels}, 132 if $self->{skip_rels};
+ skip $self->{skip_rels}, 131 if $self->{skip_rels};
my $moniker3 = $monikers->{loader_test3};
my $class3 = $classes->{loader_test3};
my $rs_rel4 = try { $obj3->search_related('loader_test4zes') };
isa_ok( try { $rs_rel4->first }, $class4);
- is( $class4->column_info('crumb_crisp_coating')->{accessor}, 'trivet',
- 'col_accessor_map is being run' );
-
# check rel naming with prepositions
ok ($rsobj4->result_source->has_relationship('loader_test5s_to'),
"rel with preposition 'to' pluralized correctly");
q{ INSERT INTO loader_test1s (dat) VALUES('baz') },
# also test method collision
+ # crumb_crisp_coating is for col_accessor_map tests
qq{
CREATE TABLE loader_test2 (
id $self->{auto_inc_pk},
meta INTEGER $self->{null},
test_role_method INTEGER $self->{null},
test_role_for_map_method INTEGER $self->{null},
+ crumb_crisp_coating VARCHAR(32) $self->{null},
UNIQUE (dat2, dat)
) $self->{innodb}
},
c_char_as_data VARCHAR(100)
) $self->{innodb}
},
+ qq{
+ CREATE TABLE loader_test50 (
+ id INTEGER NOT NULL UNIQUE,
+ id1 INTEGER NOT NULL,
+ id2 INTEGER NOT NULL,
+ UNIQUE (id1, id2)
+ ) $self->{innodb}
+ },
);
# some DBs require mixed case identifiers to be quoted
id INTEGER NOT NULL PRIMARY KEY,
fkid INTEGER NOT NULL,
dat VARCHAR(32),
- crumb_crisp_coating VARCHAR(32) $self->{null},
belongs_to INTEGER $self->{null},
set_primary_key INTEGER $self->{null},
FOREIGN KEY( fkid ) REFERENCES loader_test3 (id),
LoAdEr_test24
loader_test35
loader_test36
+ loader_test50
/;
my @tables_auto_inc = (