X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2Fdbixcsl_common_tests.pm;fp=t%2Flib%2Fdbixcsl_common_tests.pm;h=aa8ee67436a7978b0e971fec89829d79e36e2b35;hb=54700b7184bbe8cc03aca5af92fedc25fffd12e5;hp=f15e6f37aa96a26ced5d52f235af70a56d8e186a;hpb=0c0a775774a380909810e5b422fee3973764611d;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/lib/dbixcsl_common_tests.pm b/t/lib/dbixcsl_common_tests.pm index f15e6f3..aa8ee67 100644 --- a/t/lib/dbixcsl_common_tests.pm +++ b/t/lib/dbixcsl_common_tests.pm @@ -43,7 +43,7 @@ sub _monikerize { sub run_tests { my $self = shift; - plan tests => 84; + plan tests => 88; $self->create(); @@ -100,8 +100,13 @@ sub run_tests { } my $conn = $schema_class->clone; - my $monikers = $schema_class->loader->monikers; - my $classes = $schema_class->loader->classes; + my $monikers = {}; + my $classes = {}; + foreach my $source_name ($schema_class->sources) { + my $table_name = $schema_class->source($source_name)->from; + $monikers->{$table_name} = $source_name; + $classes->{$table_name} = $schema_class . q{::} . $source_name; + } my $moniker1 = $monikers->{loader_test1}; my $class1 = $classes->{loader_test1}; @@ -466,6 +471,36 @@ sub run_tests { isa_ok( $obj15->loader_test14, $class14 ); } } + + # rescan test + SKIP: { + skip $self->{skip_rels}, 4 if $self->{skip_rels}; + + my @statements_rescan = ( + qq{ + CREATE TABLE loader_test25 ( + id INTEGER NOT NULL PRIMARY KEY, + loader_test2 INTEGER NOT NULL, + FOREIGN KEY (loader_test2) REFERENCES loader_test2 (id) + ) $self->{innodb} + }, + q{ INSERT INTO loader_test25 (id,loader_test2) VALUES(123, 1) }, + q{ INSERT INTO loader_test25 (id,loader_test2) VALUES(321, 2) }, + ); + + my $dbh = $self->dbconnect(1); + $dbh->do($_) for @statements_rescan; + $dbh->disconnect; + + my @new = $conn->rescan; + is(scalar(@new), 1); + is($new[0], 'LoaderTest25'); + + my $rsobj25 = $conn->resultset('LoaderTest25'); + isa_ok($rsobj25, 'DBIx::Class::ResultSet'); + my $obj25 = $rsobj25->find(123); + isa_ok( $obj25->loader_test2, $class2); + } } sub dbconnect { @@ -791,7 +826,7 @@ sub create { }, q{ INSERT INTO loader_test15 (id,loader_test14) VALUES (1,123) }, - ); + ); $self->drop_tables; @@ -866,6 +901,8 @@ sub drop_tables { loader_test14 /; + my @tables_rescan = qw/ loader_test25 /; + my $drop_fk_mysql = q{ALTER TABLE loader_test10 DROP FOREIGN KEY loader_test11_fk;}; @@ -891,6 +928,7 @@ sub drop_tables { unless($self->{no_implicit_rels}) { $dbh->do("DROP TABLE $_") for (@tables_implicit_rels); } + $dbh->do("DROP TABLE $_") for (@tables_rescan); } $dbh->do("DROP TABLE $_") for (@tables); $dbh->disconnect;