fix tests
[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__->naming('current');
16         __PACKAGE__->loader_class(shift);
17         __PACKAGE__->connect($make_dbictest_db::dsn);
18     },
19     connect_info => sub {
20         package DBICTeset::Schema::2;
21         use base qw/ DBIx::Class::Schema::Loader /;
22         __PACKAGE__->naming('current');
23         __PACKAGE__->connect($make_dbictest_db::dsn, { loader_class => shift });
24     },
25     make_schema_at => sub {
26         use DBIx::Class::Schema::Loader qw/ make_schema_at /;
27         make_schema_at(
28             'DBICTeset::Schema::3',
29             { naming => 'current' },
30             [ $make_dbictest_db::dsn, { loader_class => shift } ]
31         );
32     }
33 );
34
35 # one test per invocation/class combo
36 plan tests => keys(%invocations) * keys(%loader_class);
37
38 while (my ($style,$subref) = each %invocations) {
39     while (my ($arg, $class) = each %loader_class) {
40         my $schema = $subref->($arg);
41         $schema = $schema->clone unless ref $schema;
42         isa_ok($schema->_loader, $class, "$style($arg)");
43     }
44 }