9 my $DUMP_DIR = './t/_common_dump';
15 my $schema_class = 'DBIXCSL_Test::Schema';
16 Class::Unload->unload($schema_class);
18 my @connect_info = $make_dbictest_db2::dsn;
20 local $SIG{__WARN__} = sub { push(@loader_warnings, $_[0]); };
22 package $schema_class;
23 use base qw/DBIx::Class::Schema::Loader/;
25 __PACKAGE__->loader_options(\%loader_opts);
26 __PACKAGE__->connection(\@connect_info);
29 ok(!$@, "Loader initialization") or diag $@;
31 my $schema = $schema_class->clone;
32 my (%monikers, %classes);
33 foreach my $source_name ($schema->sources) {
34 my $table_name = $schema->source($source_name)->from;
35 $monikers{$table_name} = $source_name;
36 $classes{$table_name} = "${schema_class}::${source_name}";
41 warnings => \@loader_warnings,
42 monikers => \%monikers,
47 # test dynamic schema in 0.04006 mode
49 my $res = run_loader();
51 like $res->{warnings}[0], qr/dynamic schema/i,
52 'dynamic schema in backcompat mode detected';
53 like $res->{warnings}[0], qr/run in 0\.04006 mode/,
54 'dynamic schema in 0.04006 mode warning';
56 is_deeply [ @{ $res->{monikers} }{qw/foos bar bazes quuxes/} ],
57 [qw/Foos Bar Bazes Quuxes/],
58 'correct monikers in 0.04006 mode';
60 ok my $bar = eval { $res->{schema}->resultset('Bar')->find(1) };
62 isa_ok eval { $bar->fooref }, $res->{classes}{foos},
65 ok my $baz = eval { $res->{schema}->resultset('Bazes')->find(1) };
67 isa_ok eval { $baz->quuxes }, 'DBIx::Class::ResultSet',
68 'correct rel type and name for UNIQUE FK';
73 END { rmtree $DUMP_DIR }