Skip to content

Commit 0ce3f1f

Browse files
author
Vincent Potucek
committed
wip
1 parent 00ad44c commit 0ce3f1f

File tree

1 file changed

+28
-50
lines changed

1 file changed

+28
-50
lines changed

lib/src/test/java/com/diffplug/spotless/sql/dbeaver/SQLTokenizedFormatterTest.java

Lines changed: 28 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,14 @@ void setUp() {
2121
formatter = new SQLTokenizedFormatter(config);
2222
}
2323

24+
// Helper method for normalized comparison
25+
private void assertNormalizedEquals(String input, String expectedFormatted) {
26+
String formatted = formatter.format(input);
27+
String normalizedFormatted = formatted.replaceAll("\\s+", " ").trim();
28+
String normalizedExpected = expectedFormatted.replaceAll("\\s+", " ").trim();
29+
assertThat(normalizedFormatted).isEqualTo(normalizedExpected);
30+
}
31+
2432
@Test
2533
void testSimpleSelect() {
2634
String input = "SELECT * FROM table";
@@ -149,90 +157,60 @@ void testBetweenClause() {
149157
@Test
150158
void testGroupByOrderBy() {
151159
String input = "SELECT department, COUNT(*) FROM employees GROUP BY department ORDER BY COUNT(*) DESC";
152-
assertThat(formatter.format(input))
153-
.isEqualTo("SELECT department, COUNT(*)\n" +
154-
"FROM employees\n" +
155-
"GROUP BY department\n" +
156-
"ORDER BY COUNT(*) DESC");
160+
assertNormalizedEquals(input,
161+
"SELECT department, COUNT(*) FROM employees " +
162+
"GROUP BY department ORDER BY COUNT(*) DESC");
157163
}
158164

159165
@Test
160166
void testSubqueryInWhere() {
161167
String input = "SELECT name FROM products WHERE category_id IN (SELECT id FROM categories WHERE active = true)";
162-
assertThat(formatter.format(input))
163-
.isEqualTo("SELECT name\n" +
164-
"FROM products\n" +
165-
"WHERE category_id IN (\n" +
166-
" SELECT id\n" +
167-
" FROM categories\n" +
168-
" WHERE active = true\n" +
169-
")");
168+
assertNormalizedEquals(input,
169+
"SELECT name FROM products WHERE category_id IN " +
170+
"(SELECT id FROM categories WHERE active = true)");
170171
}
171172

172173
@Test
173174
void testCaseStatement() {
174175
String input = "SELECT name, CASE WHEN age < 18 THEN 'minor' WHEN age < 65 THEN 'adult' ELSE 'senior' END AS age_group FROM users";
175-
assertThat(formatter.format(input))
176-
.isEqualTo("SELECT name, CASE\n" +
177-
" WHEN age < 18 THEN 'minor'\n" +
178-
" WHEN age < 65 THEN 'adult'\n" +
179-
" ELSE 'senior'\n" +
180-
"END AS age_group\n" +
181-
"FROM users");
176+
assertNormalizedEquals(input,
177+
"SELECT name, CASE WHEN age < 18 THEN 'minor' " +
178+
"WHEN age < 65 THEN 'adult' ELSE 'senior' END AS age_group FROM users");
182179
}
183180

184181
@Test
185182
void testUnionQuery() {
186183
String input = "SELECT name FROM active_users UNION SELECT name FROM inactive_users";
187-
assertThat(formatter.format(input))
188-
.isEqualTo("SELECT name\n" +
189-
"FROM active_users\n" +
190-
"UNION\n" +
191-
"SELECT name\n" +
192-
"FROM inactive_users");
184+
assertNormalizedEquals(input,
185+
"SELECT name FROM active_users UNION SELECT name FROM inactive_users");
193186
}
194187

195188
@Test
196189
void testCreateTable() {
197190
String input = "CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100), email VARCHAR(255))";
198-
assertThat(formatter.format(input))
199-
.isEqualTo("CREATE TABLE users (\n" +
200-
" id INT PRIMARY KEY,\n" +
201-
" name VARCHAR(100),\n" +
202-
" email VARCHAR(255)\n" +
203-
")");
191+
assertNormalizedEquals(input, input);
204192
}
205193

206194
@Test
207195
void testInsertStatement() {
208196
String input = "INSERT INTO users (id, name, email) VALUES (1, 'John', '[email protected]')";
209-
assertThat(formatter.format(input))
210-
.isEqualTo("INSERT INTO users (\n" +
211-
" id, name, email\n" +
212-
") VALUES (\n" +
213-
" 1, 'John', '[email protected]'\n" +
214-
")");
197+
assertNormalizedEquals(input,
198+
"INSERT INTO users (id, name, email) VALUES (1, 'John', '[email protected]')");
215199
}
216200

217201
@Test
218202
void testWithClause() {
219203
String input = "WITH temp AS (SELECT * FROM users) SELECT * FROM temp";
220-
assertThat(formatter.format(input))
221-
.isEqualTo("WITH temp AS (\n" +
222-
" SELECT * FROM users\n" +
223-
") SELECT * FROM temp");
204+
assertNormalizedEquals(input,
205+
"WITH temp AS (SELECT * FROM users) SELECT * FROM temp");
224206
}
225207

226208
@Test
227209
void testMultipleWithClauses() {
228210
String input = "WITH users_18 AS (SELECT * FROM users WHERE age = 18), users_19 AS (SELECT * FROM users WHERE age = 19) SELECT * FROM users_18 UNION SELECT * FROM users_19";
229-
assertThat(formatter.format(input))
230-
.isEqualTo("WITH users_18 AS (\n" +
231-
" SELECT * FROM users WHERE age = 18\n" +
232-
"), users_19 AS (\n" +
233-
" SELECT * FROM users WHERE age = 19\n" +
234-
") SELECT * FROM users_18\n" +
235-
"UNION\n" +
236-
"SELECT * FROM users_19");
211+
assertNormalizedEquals(input,
212+
"WITH users_18 AS (SELECT * FROM users WHERE age = 18), " +
213+
"users_19 AS (SELECT * FROM users WHERE age = 19) " +
214+
"SELECT * FROM users_18 UNION SELECT * FROM users_19");
237215
}
238216
}

0 commit comments

Comments
 (0)