X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F70schema_base_dispatched.t;h=8e0756f21c963d9061d04c40c8f89be19de39ad7;hb=50b95db6f08695f02fd804bc71c6c222cd310d05;hp=3d70db58d0f4775ccbf066e99a4d144ec01d6c91;hpb=310f3603f4dee670ce5b733c862c62c35d96cd3c;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/t/70schema_base_dispatched.t b/t/70schema_base_dispatched.t index 3d70db5..8e0756f 100644 --- a/t/70schema_base_dispatched.t +++ b/t/70schema_base_dispatched.t @@ -1,6 +1,6 @@ use strict; use warnings; -use Test::More tests => 8; +use Test::More tests => 10; use DBIx::Class::Schema::Loader 'make_schema_at'; use lib 't/lib'; use make_dbictest_db; @@ -15,50 +15,58 @@ make_schema_at( [ $make_dbictest_db::dsn ], ); -ok $TestSchemaBaseClass::test_ok, +is $TestSchemaBaseClass::test_ok, 1, 'connected using schema_base_class'; -ok $DBIx::Class::TestSchemaComponent::test_component_ok, +is $DBIx::Class::TestSchemaComponent::test_component_ok, 1, 'connected using schema_components'; # try an explicit dynamic schema -$TestSchemaBaseClass::test_ok = 0; -$DBIx::Class::TestSchemaComponent::test_component_ok = 0; - { package DBICTest::Schema::_test_schema_base_dynamic; use base 'DBIx::Class::Schema::Loader'; + our $ran_connection = 0; __PACKAGE__->loader_options({ naming => 'current', schema_base_class => 'TestSchemaBaseClass', schema_components => ['TestSchemaComponent'], }); # check that connection doesn't cause an infinite loop - sub connection { my $self = shift; return $self->next::method(@_) } + sub connection { my $self = shift; $ran_connection++; return $self->next::method(@_) } } +$TestSchemaBaseClass::test_ok = 0; +$DBIx::Class::TestSchemaComponent::test_component_ok = 0; + ok(my $schema = DBICTest::Schema::_test_schema_base_dynamic->connect($make_dbictest_db::dsn), 'connected dynamic schema'); -ok $TestSchemaBaseClass::test_ok, +is $DBICTest::Schema::_test_schema_base_dynamic::ran_connection, 1, + 'schema class connection method ran only once'; + +is $TestSchemaBaseClass::test_ok, 1, 'connected using schema_base_class in dynamic schema'; -ok $DBIx::Class::TestSchemaComponent::test_component_ok, +is $DBIx::Class::TestSchemaComponent::test_component_ok, 1, 'connected using schema_components in dynamic schema'; # connect a second time $TestSchemaBaseClass::test_ok = 0; $DBIx::Class::TestSchemaComponent::test_component_ok = 0; +$DBICTest::Schema::_test_schema_base_dynamic::ran_connection = 0; ok($schema = DBICTest::Schema::_test_schema_base_dynamic->connect($make_dbictest_db::dsn), 'connected dynamic schema a second time'); -ok $TestSchemaBaseClass::test_ok, +is $DBICTest::Schema::_test_schema_base_dynamic::ran_connection, 1, +'schema class connection method ran only once when connecting a second time'; + +is $TestSchemaBaseClass::test_ok, 1, 'connected using schema_base_class in dynamic schema a second time'; -ok $DBIx::Class::TestSchemaComponent::test_component_ok, +is $DBIx::Class::TestSchemaComponent::test_component_ok, 1, 'connected using schema_components in dynamic schema a second time';