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