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 /; |
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 | ); |
3953cbee |
32 | |
29ddb54c |
33 | # one test per invocation/class combo |
34 | plan tests => keys(%invocations) * keys(%loader_class); |
3953cbee |
35 | |
29ddb54c |
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 | } |