X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F56-sqlite-producer.t;h=d0d2cfeb267f661c305227d9ed2d007641e04ae1;hb=HEAD;hp=4b79a602cb9a74f96d9e98a146ea0b23d20ed9d0;hpb=7f3f64d7569376436130a955eb3c9e6b30284c34;p=dbsrgits%2FSQL-Translator.git diff --git a/t/56-sqlite-producer.t b/t/56-sqlite-producer.t index 4b79a60..d0d2cfe 100644 --- a/t/56-sqlite-producer.t +++ b/t/56-sqlite-producer.t @@ -5,6 +5,7 @@ use strict; use Test::More; use Test::SQL::Translator qw(maybe_plan); +use SQL::Translator::Schema; use SQL::Translator::Schema::View; use SQL::Translator::Schema::Table; use SQL::Translator::Producer::SQLite; @@ -211,4 +212,43 @@ $SQL::Translator::Producer::SQLite::NO_QUOTES = 0; } } +{ + my $schema = SQL::Translator::Schema->new(); + my $table = $schema->add_table( name => 'foo', fields => ['bar'] ); + + { + my $trigger = $schema->add_trigger( + name => 'mytrigger', + perform_action_when => 'before', + database_events => 'update', + on_table => 'foo', + fields => ['bar'], + action => 'BEGIN baz() END' + ); + my ($def) = SQL::Translator::Producer::SQLite::create_trigger($trigger); + is($def, 'CREATE TRIGGER "mytrigger" before update on "foo" BEGIN baz() END', 'trigger created'); + } + + { + my $trigger = $schema->add_trigger( + name => 'mytrigger2', + perform_action_when => 'after', + database_events => ['insert'], + on_table => 'foo', + fields => ['bar'], + action => 'baz()' + ); + my ($def) = SQL::Translator::Producer::SQLite::create_trigger($trigger); + is($def, 'CREATE TRIGGER "mytrigger2" after insert on "foo" BEGIN baz() END', 'trigger created'); + } +} + +{ + my $table = SQL::Translator::Schema::Table->new( name => 'foobar', fields => ['foo'] ); + my $constr = $table->add_constraint(name => 'constr', expression => "foo != 'baz'"); + my ($def) = SQL::Translator::Producer::SQLite::create_check_constraint($constr); + + is($def, q{CONSTRAINT "constr" CHECK(foo != 'baz')}, 'check constraint created'); +} + done_testing;