9 use Catalyst::Model::DBIC::Schema;
12 # execise the connect_info coercion
15 ['dbi:SQLite:foo.db', '', ''],
16 { dsn => 'dbi:SQLite:foo.db', user => '', password => '' },
18 ['dbi:SQLite:foo.db', ''],
19 { dsn => 'dbi:SQLite:foo.db', user => '', password => '' },
21 ['dbi:SQLite:foo.db'],
22 { dsn => 'dbi:SQLite:foo.db', user => '', password => '' },
25 { dsn => 'dbi:SQLite:foo.db', user => '', password => '' },
27 ['dbi:Pg:dbname=foo', 'user', 'pass',
28 { pg_enable_utf8 => 1, auto_savepoint => 1 }],
29 { dsn => 'dbi:Pg:dbname=foo', user => 'user', password => 'pass',
30 pg_enable_utf8 => 1, auto_savepoint => 1 },
32 ['dbi:Pg:dbname=foo', 'user', 'pass',
33 { pg_enable_utf8 => 1 }, { auto_savepoint => 1 }],
34 { dsn => 'dbi:Pg:dbname=foo', user => 'user', password => 'pass',
35 pg_enable_utf8 => 1, auto_savepoint => 1 },
37 [ { dsn => 'dbi:Pg:dbname=foo', user => 'user', password => 'pass',
38 pg_enable_utf8 => 1, auto_savepoint => 1 } ],
39 { dsn => 'dbi:Pg:dbname=foo', user => 'user', password => 'pass',
40 pg_enable_utf8 => 1, auto_savepoint => 1 },
46 ['dbi:Pg:dbname=foo', 'user', 'pass',
47 { pg_enable_utf8 => 1 }, { AutoCommit => 1 }, { auto_savepoint => 1 }],
50 plan tests => @tests / 2 + @invalid + 1;
52 # ignore redefined warnings, and uninitialized warnings from old
53 # ::Storage::DBI::Replicated
54 local $SIG{__WARN__} = sub {
55 $_[0] !~ /(?:redefined|uninitialized)/i && warn @_
58 for (my $i = 0; $i < @tests; $i += 2) {
60 connect_info => $tests[$i]
63 is_deeply $m->connect_info, $tests[$i+1],
64 'connect_info coerced correctly';
67 throws_ok { instance(connect_info => $_) } qr/valid connect_info/i,
68 'invalid connect_info throws exception'
71 # try as ConnectInfos (e.g.: replicants)
72 my @replicants = map $tests[$_], grep $_ % 2 == 0, 0..$#tests;
75 package TryConnectInfos;
78 use Catalyst::Model::DBIC::Schema::Types 'ConnectInfos';
80 has replicants => (is => 'ro', isa => ConnectInfos, coerce => 1);
83 my $m = TryConnectInfos->new(
84 replicants => \@replicants
87 is_deeply $m->replicants, [
88 map $tests[$_], grep $_ % 2, 0 .. $#tests
89 ], 'replicant connect_infos coerced correctly';
92 Catalyst::Model::DBIC::Schema->new({
93 schema_class => 'ASchemaClass',