3 use Test::More tests => 10;
4 use DBIx::Class::Schema::Loader 'make_schema_at';
9 'DBICTest::Schema::_test_schema_base',
12 schema_base_class => 'TestSchemaBaseClass',
13 schema_components => ['TestSchemaComponent'],
15 [ $make_dbictest_db::dsn ],
18 is $TestSchemaBaseClass::test_ok, 1,
19 'connected using schema_base_class';
21 is $DBIx::Class::TestSchemaComponent::test_component_ok, 1,
22 'connected using schema_components';
24 # try an explicit dynamic schema
27 package DBICTest::Schema::_test_schema_base_dynamic;
28 use base 'DBIx::Class::Schema::Loader';
29 our $ran_connection = 0;
30 __PACKAGE__->loader_options({
32 schema_base_class => 'TestSchemaBaseClass',
33 schema_components => ['TestSchemaComponent'],
35 # check that connection doesn't cause an infinite loop
36 sub connection { my $self = shift; $ran_connection++; return $self->next::method(@_) }
39 $TestSchemaBaseClass::test_ok = 0;
40 $DBIx::Class::TestSchemaComponent::test_component_ok = 0;
43 DBICTest::Schema::_test_schema_base_dynamic->connect($make_dbictest_db::dsn),
44 'connected dynamic schema');
46 is $DBICTest::Schema::_test_schema_base_dynamic::ran_connection, 1,
47 'schema class connection method ran only once';
49 is $TestSchemaBaseClass::test_ok, 1,
50 'connected using schema_base_class in dynamic schema';
52 is $DBIx::Class::TestSchemaComponent::test_component_ok, 1,
53 'connected using schema_components in dynamic schema';
55 # connect a second time
57 $TestSchemaBaseClass::test_ok = 0;
58 $DBIx::Class::TestSchemaComponent::test_component_ok = 0;
59 $DBICTest::Schema::_test_schema_base_dynamic::ran_connection = 0;
62 DBICTest::Schema::_test_schema_base_dynamic->connect($make_dbictest_db::dsn),
63 'connected dynamic schema a second time');
65 is $DBICTest::Schema::_test_schema_base_dynamic::ran_connection, 1,
66 'schema class connection method ran only once when connecting a second time';
68 is $TestSchemaBaseClass::test_ok, 1,
69 'connected using schema_base_class in dynamic schema a second time';
71 is $DBIx::Class::TestSchemaComponent::test_component_ok, 1,
72 'connected using schema_components in dynamic schema a second time';