#!perl -T =head1 PURPOSE Make sure that get_default_dbh() returns the database handle specified in the static class information. =cut use strict; use warnings; use DBIx::NinjaORM; use Test::Exception; use Test::More tests => 4; # Make sure that get_default_dbh() is supported by DBIx::NinjaORM. can_ok( 'DBIx::NinjaORM', 'get_default_dbh', ); # Verify inheritance. can_ok( 'DBIx::NinjaORM::Test', 'get_default_dbh', ); my $tests = [ # We need to support $class->get_default_dbh() calls. { name => 'Test calling get_default_dbh() on the class', ref => 'DBIx::NinjaORM::Test', }, # We need to support $object->get_default_dbh() calls. { name => 'Test calling get_default_dbh() on an object', ref => bless( {}, 'DBIx::NinjaORM::Test' ), }, ]; # Run tests. foreach my $test ( @$tests ) { subtest( $test->{'name'}, sub { plan( tests => 2 ); my $default_dbh; lives_ok( sub { $default_dbh = $test->{'ref'}->get_default_dbh(); }, 'Retrieve the default database handle.', ); is( $default_dbh, 'TESTDBH', 'get_default_dbh() returns the value set up in static_class_info().', ); } ); } # Test subclass with a custom 'default_dbh' key. package DBIx::NinjaORM::Test; use strict; use warnings; use base 'DBIx::NinjaORM'; sub static_class_info { return { # We're not going to use the database handle, we just need to # be able to compare the value, so it's easier here to set it # to a known value. 'default_dbh' => "TESTDBH", }; } 1;