X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F08helper.t;h=09ae5ebdfa1369faf6cb4ccb396d159bf7e00702;hb=9ee0a8684abce91b46f4d0769db2e394e18ab4a9;hp=08951dad2cd3ab67cee279a2be307d3edd954451;hpb=c34bcab69a93411aaca477595289fa51e6fb8b11;p=catagits%2FCatalyst-Model-DBIC-Schema.git diff --git a/t/08helper.t b/t/08helper.t index 08951da..09ae5eb 100644 --- a/t/08helper.t +++ b/t/08helper.t @@ -4,11 +4,11 @@ use warnings; use FindBin '$Bin'; use lib "$Bin/lib"; -use Test::More tests => 40; +use Test::More; use Test::Exception; use Catalyst::Helper::Model::DBIC::Schema; -use Catalyst::Helper; use Storable 'dclone'; +use Test::Requires qw(Catalyst::Helper DBIx::Class::Schema::Loader); my $helper = Catalyst::Helper->new; $helper->{base} = $Bin; @@ -24,6 +24,9 @@ my $i; $i = instance(schema_class => 'ASchemaClass'); is $i->old_schema, 1, '->load_classes detected correctly'; +throws_ok { $i = instance(args => [$static, 'DbI:SQLite:myapp.db']) } + qr/case matters/i, "wrong case for 'dbi:' DSN part"; + $i = instance(args => ['traits=Caching']); is_deeply $i->traits, ['Caching'], 'one trait'; is $i->helper->{traits}, "['Caching']", 'one trait as string'; @@ -69,11 +72,12 @@ $i = instance(args => [$static, q{components=TimeStamp,Foo}]); is_deeply $i->components, ['InflateColumn::DateTime', 'TimeStamp', 'Foo'], 'two extra components'; +my $flags = qr// =~ /\^/ ? '^' : "-xism"; $i = instance(args => [$static, q{constraint=^(foo|bar)$}]); is $i->loader_args->{constraint}, qr/^(foo|bar)$/, 'constraint loader arg'; is $i->helper->{loader_args}{constraint}, - q{qr/(?-xism:^(foo|bar)$)/}, + qq{qr/(?$flags:^(foo|bar)\$)/}, 'constraint loader arg as string'; $i = instance(args => [$static, q{exclude=^(foo|bar)$}]); @@ -113,6 +117,16 @@ is $i->helper->{connect_info}{name_sep}, 'q{.}', 'connect_info name_sep as string'; $i = instance(args => [ + $static, $sqlite, 'on_connect_do=PRAGMA foreign_keys = ON' +]); + +is $i->connect_info->{on_connect_do}, + 'PRAGMA foreign_keys = ON', 'on_connect_do string'; + +is $i->helper->{connect_info}{on_connect_do}, + 'q{PRAGMA foreign_keys = ON}', 'on_connect_do string as string'; + +$i = instance(args => [ $static, 'components=TimeStamp', $sqlite, '', $on_connect_do, $quote_char, $name_sep ]); @@ -151,6 +165,20 @@ is $i->helper->{connect_info}{auto_savepoint}, 'q{1}', is $i->helper->{connect_info}{AutoCommit}, 'q{0}', 'connect_info arg from extra hash as string'; +$i = instance(args => [ + $static, 'components=TimeStamp', $sqlite, $on_connect_do, + $quote_char, $name_sep, 'auto_savepoint=1', 'AutoCommit=0', + 'db_schema=myschema', +]); + +is $i->loader_args->{db_schema}, 'myschema', + 'loader arg after connect_info'; + +ok ((not exists $i->helper->{connect_info}{db_schema}), + 'loader args removed from connect_info'); + +done_testing; + sub instance { Catalyst::Helper::Model::DBIC::Schema->new( schema_class => 'AnotherSchemaClass',