faster travis builds
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / deploy_methods / script-helpers.t
CommitLineData
3467d1a5 1#!perl
2
3use strict;
4use warnings;
5
6use Test::More;
7use DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::ScriptHelpers ':all';;
ae521c55 8use Test::Fatal;
3467d1a5 9
10use lib 't/lib';
11
12use DBICVersion_v1;
13use DBICDHTest;
14
15my $dbh = DBICDHTest->dbh;
16my @connection = (sub { $dbh }, { ignore_version => 1 });
17my $schema = DBICVersion::Schema->connect(@connection);
18$schema->deploy;
19
20subtest dbh => sub {
21 my $ran;
22 dbh(sub {
23 my ($dbh, $versions) = @_;
24
25 $ran = 1;
26
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');
30 })->($schema, [1,2]);
31
32 ok $ran, 'coderef ran';
33};
34
35subtest schema_from_schema_loader => sub {
36 use Test::Requires;
37 test_requires('DBIx::Class::Schema::Loader');
38 my $build_sl_test = sub {
39 my @connection = @_;
40
41 return sub {
42 my $ran;
43 my $outer_schema = DBICVersion::Schema->connect(@connection);
44 $outer_schema->deploy;
45 schema_from_schema_loader({ naming => 'v4' }, sub {
46 my ($schema, $versions) = @_;
47
48 $ran = 1;
49
50 is(
51 $outer_schema->storage->dbh,
52 $schema->storage->dbh,
53 'dbh is correctly reused',
54 );
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]);
59
60 ok $ran, 'coderef ran';
61 }
62 };
63
64 subtest 'sub { $dbh }, ...' => $build_sl_test->(
65 sub { DBICDHTest->dbh },
66 { ignore_version => 1 },
67 );
68 subtest '$dsn, $user, $pass, ...' => $build_sl_test->(
69 'dbi:SQLite::memory:', undef, undef,
70 { RaiseError => 1 },
71 { ignore_version => 1 }
72 );
73
74 subtest '({ dsn => ..., ... })' => $build_sl_test->({
75 dsn => 'dbi:SQLite::memory:',
76 user => undef,
77 password => undef,
78 RaiseError => 1,
79 ignore_version => 1,
80 });
81
82 subtest '({ dbh_maker => ..., ... })' => $build_sl_test->({
83 dbh_maker => sub { DBICDHTest->dbh },
84 RaiseError => 1,
85 ignore_version => 1,
86 });
ae521c55 87
88 subtest '({ dbh_maker => ..., ... })' => $build_sl_test->({
89 dbh_maker => sub { DBICDHTest->dbh },
90 RaiseError => 1,
91 ignore_version => 1,
92 });
93
94 subtest 'error handling' => sub {
95 my $outer_schema = DBICVersion::Schema->connect(
96 'dbi:SQLite::memory:', undef, undef,
97 { RaiseError => 1 },
98 { ignore_version => 1 },
99 );
100 $outer_schema->deploy;
101 like(exception {
102 schema_from_schema_loader({ naming => 'v4' }, sub {
103 my ($schema, $versions) = @_;
104
105 $schema->resultset('foo')
106 })->($outer_schema, [2,3]);
107 }, qr/Foo <== Possible Match/, 'correct error');
108 };
3467d1a5 109};
110
111done_testing;
112