Commit | Line | Data |
3953cbee |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | use lib qw(t/lib); |
5 | use make_dbictest_db; |
6 | |
29ddb54c |
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 /; |
8b7749d6 |
15 | __PACKAGE__->naming('current'); |
29ddb54c |
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 /; |
8b7749d6 |
22 | __PACKAGE__->naming('current'); |
29ddb54c |
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', |
8b7749d6 |
29 | { naming => 'current' }, |
29ddb54c |
30 | [ $make_dbictest_db::dsn, { loader_class => shift } ] |
31 | ); |
32 | } |
33 | ); |
3953cbee |
34 | |
29ddb54c |
35 | # one test per invocation/class combo |
36 | plan tests => keys(%invocations) * keys(%loader_class); |
3953cbee |
37 | |
29ddb54c |
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 | } |