X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F47postgres-producer.t;h=ba9f44d3bd006f30347301bee3f978b6ed30fd2f;hb=296c27014d3aae53005b1727c7ab2397ba1a3346;hp=d52136ffeabb76773dcf8ab2b1caa61115633441;hpb=ec59a59706d3aede26dbdcfec8e3ba5d64e2d8f7;p=dbsrgits%2FSQL-Translator.git diff --git a/t/47postgres-producer.t b/t/47postgres-producer.t index d52136f..ba9f44d 100644 --- a/t/47postgres-producer.t +++ b/t/47postgres-producer.t @@ -14,7 +14,7 @@ use FindBin qw/$Bin/; #============================================================================= BEGIN { - maybe_plan(7, + maybe_plan(9, 'SQL::Translator::Producer::PostgreSQL', 'Test::Differences', ) @@ -104,3 +104,31 @@ my $field5_sql = SQL::Translator::Producer::PostgreSQL::create_field($field5,{ p is($field5_sql, 'enum_field mytable_enum_field_type NOT NULL', 'Create real enum field works'); +my $view1 = SQL::Translator::Schema::View->new( + name => 'view_foo', + fields => [qw/id name/], + sql => 'SELECT id, name FROM thing', +); +my $create_opts = { add_replace_view => 1, no_comments => 1 }; +my $view1_sql1 = SQL::Translator::Producer::PostgreSQL::create_view($view1, $create_opts); + +my $view_sql_replace = "CREATE OR REPLACE VIEW view_foo ( id, name ) AS ( + SELECT id, name FROM thing + );\n\n"; +is($view1_sql1, $view_sql_replace, 'correct "CREATE OR REPLACE VIEW" SQL'); + +my $view2 = SQL::Translator::Schema::View->new( + name => 'view_foo2', + sql => 'SELECT id, name FROM thing', + extra => { + 'temporary' => '1', + 'check_option' => 'cascaded', + }, +); +my $create2_opts = { add_replace_view => 1, no_comments => 1 }; +my $view2_sql1 = SQL::Translator::Producer::PostgreSQL::create_view($view2, $create2_opts); + +my $view2_sql_replace = "CREATE OR REPLACE TEMPORARY VIEW view_foo2 AS ( + SELECT id, name FROM thing + ) WITH CASCADED CHECK OPTION;\n\n"; +is($view2_sql1, $view2_sql_replace, 'correct "CREATE OR REPLACE VIEW" SQL 2');