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 | |
71a6e88a |
7 | my %loader_class = ( |
8 | 'TestLoaderSubclass' => 'TestLoaderSubclass', |
9 | 'TestLoaderSubclass_NoRebless' => 'TestLoaderSubclass_NoRebless', |
10 | '::DBI::SQLite' => 'DBIx::Class::Schema::Loader::DBI::SQLite' |
11 | ); |
29ddb54c |
12 | |
13 | my %invocations = ( |
14 | loader_class => sub { |
15 | package DBICTest::Schema::1; |
16 | use base qw/ DBIx::Class::Schema::Loader /; |
23fd9773 |
17 | __PACKAGE__->_loader_invoked(0); |
8b7749d6 |
18 | __PACKAGE__->naming('current'); |
29ddb54c |
19 | __PACKAGE__->loader_class(shift); |
20 | __PACKAGE__->connect($make_dbictest_db::dsn); |
21 | }, |
22 | connect_info => sub { |
23 | package DBICTeset::Schema::2; |
24 | use base qw/ DBIx::Class::Schema::Loader /; |
23fd9773 |
25 | __PACKAGE__->_loader_invoked(0); |
8b7749d6 |
26 | __PACKAGE__->naming('current'); |
29ddb54c |
27 | __PACKAGE__->connect($make_dbictest_db::dsn, { loader_class => shift }); |
28 | }, |
29 | make_schema_at => sub { |
30 | use DBIx::Class::Schema::Loader qw/ make_schema_at /; |
31 | make_schema_at( |
32 | 'DBICTeset::Schema::3', |
8b7749d6 |
33 | { naming => 'current' }, |
29ddb54c |
34 | [ $make_dbictest_db::dsn, { loader_class => shift } ] |
35 | ); |
36 | } |
37 | ); |
3953cbee |
38 | |
29ddb54c |
39 | # one test per invocation/class combo |
40 | plan tests => keys(%invocations) * keys(%loader_class); |
3953cbee |
41 | |
29ddb54c |
42 | while (my ($style,$subref) = each %invocations) { |
43 | while (my ($arg, $class) = each %loader_class) { |
44 | my $schema = $subref->($arg); |
45 | $schema = $schema->clone unless ref $schema; |
c4a69b87 |
46 | isa_ok($schema->loader, $class, "$style($arg)"); |
29ddb54c |
47 | } |
48 | } |