DBIx-Class-Schema-Loader-DBI-MariaDB
view release on metacpan or search on metacpan
t/45relationships.t view on Meta::CPAN
throws_ok {
schema_with( relationship_attrs => 'laughably invalid!!!' );
} qr/relationship_attrs/, 'throws error for invalid (scalar) relationship_attrs';
throws_ok {
schema_with( relationship_attrs => [qw/laughably invalid/] );
} qr/relationship_attrs/, 'throws error for invalid (arrayref) relationship_attrs';
{
my $nodelete = schema_with( relationship_attrs => {
all => { cascade_delete => 0 },
belongs_to => { cascade_delete => 1 },
});
my $bars_info = $nodelete->source('Foo')->relationship_info('bars');
#use Data::Dumper;
#die Dumper([ $nodelete->source('Foo')->relationships() ]);
my $fooref_info = $nodelete->source('Bar')->relationship_info('fooref');
is( ref($fooref_info), 'HASH',
'fooref rel is present',
);
is( $bars_info->{attrs}->{cascade_delete}, 0,
'relationship_attrs settings seem to be getting through to the generated rels',
);
is( $fooref_info->{attrs}->{cascade_delete}, 1,
'belongs_to in relationship_attrs overrides all def',
);
}
# test relationship_attrs coderef
{
my $relationship_attrs_coderef_invoked = 0;
my $schema;
lives_ok {
t/45relationships.t view on Meta::CPAN
$relationship_attrs_coderef_invoked++;
if ($p{rel_name} eq 'bars') {
is $p{rel_type}, 'has_many', 'correct rel_type';
is $p{local_table}, 'foo', 'correct local_table';
is_deeply $p{local_cols}, [ 'fooid' ], 'correct local_cols';
is $p{remote_table}, 'bar', 'correct remote_table';
is_deeply $p{remote_cols}, [ 'fooref' ], 'correct remote_cols';
is_deeply $p{attrs}, {
cascade_delete => 0,
cascade_copy => 0,
}, "got default rel attrs for $p{rel_name} in $p{local_table}";
like $p{local_source}->result_class,
qr/^DBICTest::Schema::\d+::Result::Foo\z/,
'correct local source';
like $p{remote_source}->result_class,
qr/^DBICTest::Schema::\d+::Result::Bar\z/,
'correct remote source';
t/lib/dbixcsl_common_tests.pm view on Meta::CPAN
isa_ok( try { $rs_rel4->single }, $class4);
# check rel naming with prepositions
ok ($rsobj4->result_source->has_relationship('loader_test5s_to'),
"rel with preposition 'to' pluralized correctly");
ok ($rsobj4->result_source->has_relationship('loader_test5s_from'),
"rel with preposition 'from' pluralized correctly");
# check default relationship attributes
is try { $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{cascade_delete} }, 0,
'cascade_delete => 0 on has_many by default';
is try { $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{cascade_copy} }, 0,
'cascade_copy => 0 on has_many by default';
ok ((not try { exists $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{on_delete} }),
'has_many does not have on_delete');
ok ((not try { exists $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{on_update} }),
'has_many does not have on_update');
ok ((not try { exists $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{is_deferrable} }),
'has_many does not have is_deferrable');
t/lib/dbixcsl_common_tests.pm view on Meta::CPAN
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');
ok ((not try { exists $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{cascade_copy} }),
'belongs_to does not have cascade_copy');
is try { $rsobj27->result_source->relationship_info('loader_test28')->{attrs}{cascade_delete} }, 0,
'cascade_delete => 0 on might_have by default';
is try { $rsobj27->result_source->relationship_info('loader_test28')->{attrs}{cascade_copy} }, 0,
'cascade_copy => 0 on might_have by default';
ok ((not try { exists $rsobj27->result_source->relationship_info('loader_test28')->{attrs}{on_delete} }),
'might_have does not have on_delete');
ok ((not try { exists $rsobj27->result_source->relationship_info('loader_test28')->{attrs}{on_update} }),
'might_have does not have on_update');
ok ((not try { exists $rsobj27->result_source->relationship_info('loader_test28')->{attrs}{is_deferrable} }),
'might_have does not have is_deferrable');
( run in 0.550 second using v1.01-cache-2.11-cpan-49f99fa48dc )