Update Firebird ODBC driver download URL
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 24loader_subclass.t
CommitLineData
3953cbee 1use strict;
2use warnings;
3use Test::More;
4use lib qw(t/lib);
5use make_dbictest_db;
6
71a6e88a 7my %loader_class = (
8 'TestLoaderSubclass' => 'TestLoaderSubclass',
9 'TestLoaderSubclass_NoRebless' => 'TestLoaderSubclass_NoRebless',
10 '::DBI::SQLite' => 'DBIx::Class::Schema::Loader::DBI::SQLite'
11);
29ddb54c 12
13my %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
40plan tests => keys(%invocations) * keys(%loader_class);
3953cbee 41
29ddb54c 42while (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}