7 use DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::ScriptHelpers ':all';;
15 my $dbh = DBICDHTest->dbh;
16 my @connection = (sub { $dbh }, { ignore_version => 1 });
17 my $schema = DBICVersion::Schema->connect(@connection);
23 my ($dbh, $versions) = @_;
27 is($dbh, $schema->storage->dbh, 'dbh is correctly reused');
28 is_deeply $versions, [1,2], 'version correctly passed';
29 isa_ok($dbh, 'DBI::db');
32 ok $ran, 'coderef ran';
35 subtest schema_from_schema_loader => sub {
37 test_requires('DBIx::Class::Schema::Loader');
38 my $build_sl_test = sub {
43 my $outer_schema = DBICVersion::Schema->connect(@connection);
44 $outer_schema->deploy;
45 schema_from_schema_loader({ naming => 'v4' }, sub {
46 my ($schema, $versions) = @_;
51 $outer_schema->storage->dbh,
52 $schema->storage->dbh,
53 'dbh is correctly reused',
55 is_deeply $versions, [2,3], 'version correctly passed';
56 like(ref $schema, qr/SHSchema::\d+/, 'schema has expected type');
57 isa_ok($schema, 'DBIx::Class::Schema', 'and schema is not totally worthless -');
58 })->($outer_schema, [2,3]);
60 ok $ran, 'coderef ran';
64 subtest 'sub { $dbh }, ...' => $build_sl_test->(
65 sub { DBICDHTest->dbh },
66 { ignore_version => 1 },
68 subtest '$dsn, $user, $pass, ...' => $build_sl_test->(
69 'dbi:SQLite::memory:', undef, undef,
71 { ignore_version => 1 }
74 subtest '({ dsn => ..., ... })' => $build_sl_test->({
75 dsn => 'dbi:SQLite::memory:',
82 subtest '({ dbh_maker => ..., ... })' => $build_sl_test->({
83 dbh_maker => sub { DBICDHTest->dbh },
88 subtest '({ dbh_maker => ..., ... })' => $build_sl_test->({
89 dbh_maker => sub { DBICDHTest->dbh },
94 subtest 'error handling' => sub {
95 my $outer_schema = DBICVersion::Schema->connect(
96 'dbi:SQLite::memory:', undef, undef,
98 { ignore_version => 1 },
100 $outer_schema->deploy;
102 schema_from_schema_loader({ naming => 'v4' }, sub {
103 my ($schema, $versions) = @_;
105 $schema->resultset('foo')
106 })->($outer_schema, [2,3]);
107 }, qr/Foo <== Possible Match/, 'correct error');