fix loading connect_info from schema-defined connection (RT 48084)
[catagits/Catalyst-Model-DBIC-Schema.git] / t / 08helper.t
index c6e1e00..066a69d 100644 (file)
@@ -4,11 +4,13 @@ use warnings;
 use FindBin '$Bin';
 use lib "$Bin/lib";
 
-use Test::More tests => 38;
+use Test::More;
 use Test::Exception;
 use Catalyst::Helper::Model::DBIC::Schema;
-use Catalyst::Helper;
 use Storable 'dclone';
+eval "use Catalyst::Helper";
+plan skip_all => 'Catalyst::Helper required for tests' if $@;
+plan tests => 41;
 
 my $helper      = Catalyst::Helper->new;
 $helper->{base} = $Bin;
@@ -24,13 +26,16 @@ my $i;
 $i = instance(schema_class => 'ASchemaClass');
 is $i->old_schema, 1, '->load_classes detected correctly';
 
-$i = instance(args => ['roles=Caching']);
-is_deeply $i->roles, ['Caching'], 'one role';
-is $i->helper->{roles}, "['Caching']", 'one role as string';
+throws_ok { $i = instance(args => [$static, 'DbI:SQLite:myapp.db']) }
+    qr/case matters/i, "wrong case for 'dbi:' DSN part";
 
-$i = instance(args => ['roles=Caching,Replicated']);
-is_deeply $i->roles, ['Caching', 'Replicated'], 'two roles';
-is $i->helper->{roles}, "['Caching','Replicated']", 'two roles as string';
+$i = instance(args => ['traits=Caching']);
+is_deeply $i->traits, ['Caching'], 'one trait';
+is $i->helper->{traits}, "['Caching']", 'one trait as string';
+
+$i = instance(args => ['traits=Caching,Replicated']);
+is_deeply $i->traits, ['Caching', 'Replicated'], 'two traits';
+is $i->helper->{traits}, "['Caching','Replicated']", 'two traits as string';
 
 $i = instance(args => [$static]);
 is $i->create, 'static', 'create=static';
@@ -131,6 +136,15 @@ is $i->connect_info->{user}, 'user', 'user';
 is $i->connect_info->{password}, 'pass', 'password';
 
 $i = instance(args => [
+    $static, $pg, 'user', 'pass', 'quote_char=[]', $name_sep
+]);
+
+is_deeply $i->connect_info->{quote_char}, ['[', ']'],
+    '2 character quote_char';
+is $i->helper->{connect_info}{quote_char}, '["[","]"]',
+    '2 character quote_char as string';
+
+$i = instance(args => [
     $static, 'components=TimeStamp', $sqlite, $on_connect_do,
     $quote_char, $name_sep, '{ auto_savepoint => 1, AutoCommit => 0 }'
 ]);