Changed index creation to better handle output of DDL::Oracle.
[dbsrgits/SQL-Translator.git] / t / 24yaml.t
CommitLineData
d3fad399 1#!/usr/local/bin/perl
2# vim: set ft=perl:
3
4use strict;
5use Test::More tests => 2;
6use Test::Differences;
7use SQL::Translator;
e1742702 8use FindBin '$Bin';
d3fad399 9
e1742702 10my $yaml = q/--- #YAML:1.0
af53e4ec 11schema:
e93454af 12 procedures: {}
13 tables:
e1742702 14 person:
e93454af 15 comments: ''
16 fields:
e1742702 17 age:
18 data_type: integer
19 default_value: ~
20 extra: {}
21 is_nullable: 1
22 is_primary_key: 0
23 is_unique: 0
24 name: age
25 order: 3
26 size:
27 - 0
28 description:
29 data_type: text
30 default_value: ~
31 extra: {}
32 is_nullable: 1
33 is_primary_key: 0
34 is_unique: 0
35 name: description
36 order: 6
37 size:
38 - 0
39 iq:
40 data_type: tinyint
41 default_value: 0
42 extra: {}
43 is_nullable: 1
44 is_primary_key: 0
45 is_unique: 0
46 name: iq
47 order: 5
48 size:
49 - 0
50 name:
e93454af 51 data_type: varchar
e1742702 52 default_value: ~
e93454af 53 extra: {}
54 is_nullable: 0
55 is_primary_key: 0
e1742702 56 is_unique: 1
57 name: name
e93454af 58 order: 2
59 size:
e1742702 60 - 20
61 person_id:
62 data_type: INTEGER
e93454af 63 default_value: ~
64 extra: {}
65 is_nullable: 0
66 is_primary_key: 1
67 is_unique: 0
e1742702 68 name: person_id
e93454af 69 order: 1
70 size:
e1742702 71 - 0
72 weight:
73 data_type: double
74 default_value: ~
75 extra: {}
76 is_nullable: 1
77 is_primary_key: 0
78 is_unique: 0
79 name: weight
80 order: 4
81 size:
e93454af 82 - 11
e1742702 83 - 2
84 indices: {}
85 name: person
86 options: []
87 order: 1
88 pet:
89 comments: ''
90 fields:
91 age:
92 data_type: int
e93454af 93 default_value: ~
94 extra: {}
95 is_nullable: 1
96 is_primary_key: 0
97 is_unique: 0
e1742702 98 name: age
99 order: 10
100 size:
101 - 0
102 name:
103 data_type: varchar
104 default_value: ~
105 extra: {}
106 is_nullable: 1
107 is_primary_key: 0
108 is_unique: 0
109 name: name
110 order: 9
111 size:
112 - 30
113 person_id:
114 data_type: int
115 default_value: ~
116 extra: {}
117 is_nullable: 0
118 is_primary_key: 1
119 is_unique: 0
120 name: person_id
121 order: 8
122 size:
123 - 0
124 pet_id:
125 data_type: int
126 default_value: ~
127 extra: {}
128 is_nullable: 0
129 is_primary_key: 1
130 is_unique: 0
131 name: pet_id
132 order: 7
e93454af 133 size:
134 - 0
135 indices: {}
e1742702 136 name: pet
e93454af 137 options: []
e1742702 138 order: 2
139 triggers:
140 after:
141 action:
142 for_each: ~
143 steps:
144 - update name=name
145 when: ~
146 database_event: insert
147 fields: ~
148 name: after
149 on_table: ~
150 order: 1
151 perform_action_when: ~
152 views:
153 person_pet:
154 fields: ~
155 name: person_pet
af53e4ec 156 order: 1
e1742702 157 sql: |
158 select pr.person_id, pr.name as person_name, pt.name as pet_name
159 from person pr, pet pt
160 where person.person_id=pet.pet_id
161/;
d3fad399 162
d3fad399 163my $tr = SQL::Translator->new(
e1742702 164 parser => 'SQLite',
165 producer => 'YAML',
166 filename => "$Bin/data/sqlite/create.sql",
d3fad399 167);
168
e1742702 169my $out;
170ok( $out = $tr->translate, 'Translate SQLite to YAML' );
171eq_or_diff( $out, $yaml, 'YAML matches expected' );