Commit | Line | Data |
cc15b78f |
1 | use strict; |
2 | use warnings; |
de89deba |
3 | use Test::More tests => 8; |
cc15b78f |
4 | use DBIx::Class::Schema::Loader 'make_schema_at'; |
5 | use lib 't/lib'; |
6 | use make_dbictest_db; |
7 | |
8 | make_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 | |
18 | ok $TestSchemaBaseClass::test_ok, |
19 | 'connected using schema_base_class'; |
20 | |
21 | ok $DBIx::Class::TestSchemaComponent::test_component_ok, |
22 | 'connected using schema_components'; |
de89deba |
23 | |
24 | # try an explicit dynamic schema |
25 | |
26 | $TestSchemaBaseClass::test_ok = 0; |
27 | $DBIx::Class::TestSchemaComponent::test_component_ok = 0; |
28 | |
29 | { |
30 | package DBICTest::Schema::_test_schema_base_dynamic; |
31 | use base 'DBIx::Class::Schema::Loader'; |
32 | __PACKAGE__->loader_options({ |
33 | naming => 'current', |
34 | schema_base_class => 'TestSchemaBaseClass', |
35 | schema_components => ['TestSchemaComponent'], |
36 | }); |
37 | # check that connection doesn't cause an infinite loop |
38 | sub connection { my $self = shift; return $self->next::method(@_) } |
39 | } |
40 | |
41 | ok(my $schema = |
42 | DBICTest::Schema::_test_schema_base_dynamic->connect($make_dbictest_db::dsn), |
43 | 'connected dynamic schema'); |
44 | |
45 | ok $TestSchemaBaseClass::test_ok, |
46 | 'connected using schema_base_class in dynamic schema'; |
47 | |
48 | ok $DBIx::Class::TestSchemaComponent::test_component_ok, |
49 | 'connected using schema_components in dynamic schema'; |
50 | |
51 | # connect a second time |
52 | |
53 | $TestSchemaBaseClass::test_ok = 0; |
54 | $DBIx::Class::TestSchemaComponent::test_component_ok = 0; |
55 | |
56 | ok($schema = |
57 | DBICTest::Schema::_test_schema_base_dynamic->connect($make_dbictest_db::dsn), |
58 | 'connected dynamic schema a second time'); |
59 | |
60 | ok $TestSchemaBaseClass::test_ok, |
61 | 'connected using schema_base_class in dynamic schema a second time'; |
62 | |
63 | ok $DBIx::Class::TestSchemaComponent::test_component_ok, |
64 | 'connected using schema_components in dynamic schema a second time'; |