X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fbackcompat%2F0.04006%2Flib%2Fdbixcsl_common_tests.pm;h=a67eb6131e3c978aab74323d1d1d2f6d149c850b;hb=c59a00962505d565186aa386e6b4c5aaf3a96360;hp=42920dd693c9f1ed64bfa3560e07a6fef23dab86;hpb=d13aecb1c69f045203333458d35ac838c1802374;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/backcompat/0.04006/lib/dbixcsl_common_tests.pm b/t/backcompat/0.04006/lib/dbixcsl_common_tests.pm index 42920dd..a67eb61 100644 --- a/t/backcompat/0.04006/lib/dbixcsl_common_tests.pm +++ b/t/backcompat/0.04006/lib/dbixcsl_common_tests.pm @@ -43,7 +43,7 @@ sub _monikerize { sub run_tests { my $self = shift; - plan tests => 89; + plan tests => 101; $self->create(); @@ -255,7 +255,7 @@ sub run_tests { is( $obj2->id, 2 ); SKIP: { - skip $self->{skip_rels}, 50 if $self->{skip_rels}; + skip $self->{skip_rels}, 63 if $self->{skip_rels}; my $moniker3 = $monikers->{loader_test3}; my $class3 = $classes->{loader_test3}; @@ -346,6 +346,45 @@ sub run_tests { my $rs_rel4 = $obj3->search_related('loader_test4zes'); isa_ok( $rs_rel4->first, $class4); + # test that _id is not stripped and prepositions in rel names are + # ignored + ok ($rsobj4->result_source->has_relationship('loader_test5_to_ids'), + "rel with preposition 'to' and _id pluralized backward-compatibly"); + + ok ($rsobj4->result_source->has_relationship('loader_test5_from_ids'), + "rel with preposition 'from' and _id pluralized backward-compatibly"); + + # check that default relationship attributes are not applied in 0.04006 mode + is $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{cascade_delete}, 1, + 'cascade_delete => 1 on has_many by default'; + + is $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{cascade_copy}, 1, + 'cascade_copy => 1 on has_many by default'; + + ok ((not exists $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{on_delete}), + 'has_many does not have on_delete'); + + ok ((not exists $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{on_update}), + 'has_many does not have on_update'); + + ok ((not exists $rsobj3->result_source->relationship_info('loader_test4zes')->{attrs}{is_deferrable}), + 'has_many does not have is_deferrable'); + + isnt $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{on_delete}, 'CASCADE', + "on_delete => 'CASCADE' not on belongs_to by default"; + + isnt $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{on_update}, 'CASCADE', + "on_update => 'CASCADE' not on belongs_to by default"; + + isnt $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{is_deferrable}, 1, + "is_deferrable => 1 not on belongs_to by default"; + + ok ((not exists $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{cascade_delete}), + 'belongs_to does not have cascade_delete'); + + ok ((not exists $rsobj4->result_source->relationship_info('fkid_singular')->{attrs}{cascade_copy}), + 'belongs_to does not have cascade_copy'); + # find on multi-col pk my $obj5 = $rsobj5->find({id1 => 1, id2 => 1}); is( $obj5->id2, 1 ); @@ -444,7 +483,7 @@ sub run_tests { } SKIP: { - skip 'This vendor cannot do inline relationship definitions', 5 + skip 'This vendor cannot do inline relationship definitions', 6 if $self->{no_inline_rels}; my $moniker12 = $monikers->{loader_test12}; @@ -514,7 +553,10 @@ sub run_tests { $dbh->disconnect; } - my @new = $conn->rescan; + my @new = do { + local $SIG{__WARN__} = sub {}; + $conn->rescan; + }; is(scalar(@new), 1); is($new[0], 'LoaderTest30'); @@ -624,7 +666,11 @@ sub create { id1 INTEGER NOT NULL, iD2 INTEGER NOT NULL, dat VARCHAR(8), - PRIMARY KEY (id1,id2) + from_id INTEGER, + to_id INTEGER, + PRIMARY KEY (id1,id2), + FOREIGN KEY (from_id) REFERENCES loader_test4 (id), + FOREIGN KEY (to_id) REFERENCES loader_test4 (id) ) $self->{innodb} },