Fix SQLite producer create_view so it doesn't generate statements with semicolons.
[dbsrgits/SQL-Translator.git] / t / 56-sqlite-producer.t
1 #!/usr/bin/perl
2 # vim: set ft=perl:
3
4 use strict;
5 use Test::More tests => 2;
6 use Test::SQL::Translator qw(maybe_plan);
7 use FindBin qw/$Bin/;
8
9 use SQL::Translator::Schema::View;
10 use SQL::Translator::Producer::SQLite;
11
12 {
13   my $view1 = SQL::Translator::Schema::View->new( name => 'view_foo',
14                                                   fields => [qw/id name/],
15                                                   sql => 'SELECT id, name FROM thing',
16                                                   extra => {
17                                                     temporary => 1,
18                                                     if_not_exists => 1,
19                                                   });
20   my $create_opts = { no_comments => 1 };
21   my $view1_sql1 = [ SQL::Translator::Producer::SQLite::create_view($view1, $create_opts) ];
22
23   my $view_sql_replace = [ "CREATE TEMPORARY VIEW IF NOT EXISTS view_foo AS
24     SELECT id, name FROM thing" ];
25   is_deeply($view1_sql1, $view_sql_replace, 'correct "CREATE TEMPORARY VIEW" SQL');
26
27
28   my $view2 = SQL::Translator::Schema::View->new( name => 'view_foo',
29                                                   fields => [qw/id name/],
30                                                   sql => 'SELECT id, name FROM thing',);
31
32   my $view1_sql2 = [ SQL::Translator::Producer::SQLite::create_view($view2, $create_opts) ];
33   my $view_sql_noreplace = [ "CREATE VIEW view_foo AS
34     SELECT id, name FROM thing" ];
35   is_deeply($view1_sql2, $view_sql_noreplace, 'correct "CREATE VIEW" SQL');
36 }