Check truth of preserve_case not definedness
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 70schema_base_dispatched.t
CommitLineData
cc15b78f 1use strict;
2use warnings;
50b95db6 3use Test::More tests => 10;
cc15b78f 4use DBIx::Class::Schema::Loader 'make_schema_at';
5use lib 't/lib';
6use make_dbictest_db;
7
8make_schema_at(
9 'DBICTest::Schema::_test_schema_base',
10 {
11 naming => 'current',
12 schema_base_class => 'TestSchemaBaseClass',
13 schema_components => ['TestSchemaComponent'],
14 },
15 [ $make_dbictest_db::dsn ],
16);
17
50b95db6 18is $TestSchemaBaseClass::test_ok, 1,
cc15b78f 19 'connected using schema_base_class';
20
50b95db6 21is $DBIx::Class::TestSchemaComponent::test_component_ok, 1,
cc15b78f 22 'connected using schema_components';
de89deba 23
24# try an explicit dynamic schema
25
de89deba 26{
27 package DBICTest::Schema::_test_schema_base_dynamic;
28 use base 'DBIx::Class::Schema::Loader';
50b95db6 29 our $ran_connection = 0;
de89deba 30 __PACKAGE__->loader_options({
31 naming => 'current',
32 schema_base_class => 'TestSchemaBaseClass',
33 schema_components => ['TestSchemaComponent'],
34 });
35 # check that connection doesn't cause an infinite loop
50b95db6 36 sub connection { my $self = shift; $ran_connection++; return $self->next::method(@_) }
de89deba 37}
38
50b95db6 39$TestSchemaBaseClass::test_ok = 0;
40$DBIx::Class::TestSchemaComponent::test_component_ok = 0;
41
de89deba 42ok(my $schema =
43 DBICTest::Schema::_test_schema_base_dynamic->connect($make_dbictest_db::dsn),
44 'connected dynamic schema');
45
50b95db6 46is $DBICTest::Schema::_test_schema_base_dynamic::ran_connection, 1,
47 'schema class connection method ran only once';
48
49is $TestSchemaBaseClass::test_ok, 1,
de89deba 50 'connected using schema_base_class in dynamic schema';
51
50b95db6 52is $DBIx::Class::TestSchemaComponent::test_component_ok, 1,
de89deba 53 'connected using schema_components in dynamic schema';
54
55# connect a second time
56
57$TestSchemaBaseClass::test_ok = 0;
58$DBIx::Class::TestSchemaComponent::test_component_ok = 0;
50b95db6 59$DBICTest::Schema::_test_schema_base_dynamic::ran_connection = 0;
de89deba 60
61ok($schema =
62 DBICTest::Schema::_test_schema_base_dynamic->connect($make_dbictest_db::dsn),
63 'connected dynamic schema a second time');
64
50b95db6 65is $DBICTest::Schema::_test_schema_base_dynamic::ran_connection, 1,
66'schema class connection method ran only once when connecting a second time';
67
68is $TestSchemaBaseClass::test_ok, 1,
de89deba 69 'connected using schema_base_class in dynamic schema a second time';
70
50b95db6 71is $DBIx::Class::TestSchemaComponent::test_component_ok, 1,
de89deba 72 'connected using schema_components in dynamic schema a second time';