handle column accessor collisions with UNIVERSAL methods
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 24loader_subclass.t
CommitLineData
3953cbee 1use strict;
2use warnings;
3use Test::More;
4use lib qw(t/lib);
5use make_dbictest_db;
6
71a6e88a 7my %loader_class = (
8 'TestLoaderSubclass' => 'TestLoaderSubclass',
9 'TestLoaderSubclass_NoRebless' => 'TestLoaderSubclass_NoRebless',
10 '::DBI::SQLite' => 'DBIx::Class::Schema::Loader::DBI::SQLite'
11);
29ddb54c 12
13my %invocations = (
14 loader_class => sub {
15 package DBICTest::Schema::1;
16 use base qw/ DBIx::Class::Schema::Loader /;
8b7749d6 17 __PACKAGE__->naming('current');
29ddb54c 18 __PACKAGE__->loader_class(shift);
19 __PACKAGE__->connect($make_dbictest_db::dsn);
20 },
21 connect_info => sub {
22 package DBICTeset::Schema::2;
23 use base qw/ DBIx::Class::Schema::Loader /;
8b7749d6 24 __PACKAGE__->naming('current');
29ddb54c 25 __PACKAGE__->connect($make_dbictest_db::dsn, { loader_class => shift });
26 },
27 make_schema_at => sub {
28 use DBIx::Class::Schema::Loader qw/ make_schema_at /;
29 make_schema_at(
30 'DBICTeset::Schema::3',
8b7749d6 31 { naming => 'current' },
29ddb54c 32 [ $make_dbictest_db::dsn, { loader_class => shift } ]
33 );
34 }
35);
3953cbee 36
29ddb54c 37# one test per invocation/class combo
38plan tests => keys(%invocations) * keys(%loader_class);
3953cbee 39
29ddb54c 40while (my ($style,$subref) = each %invocations) {
41 while (my ($arg, $class) = each %loader_class) {
42 my $schema = $subref->($arg);
43 $schema = $schema->clone unless ref $schema;
44 isa_ok($schema->_loader, $class, "$style($arg)");
45 }
46}