Skip to content

Commit a1096e6

Browse files
fix(test): improve test stability (#13062)
1 parent 156d4de commit a1096e6

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

metadata-io/src/test/java/com/linkedin/metadata/entity/EbeanEntityServiceOptimizationTest.java

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,16 @@ private void assertSQL(
233233
try {
234234
entityService.ingestProposal(opContext, batch, false);
235235
// First collect all SQL statements that start with "txn[]"
236-
List<String> allSqlStatements =
237-
LoggedSql.collect().stream()
238-
.filter(sql -> sql.startsWith("txn[]"))
239-
.collect(Collectors.toList());
236+
List<String> allSqlStatements = new ArrayList<>();
237+
for (String sqlGroup : LoggedSql.collect()) {
238+
// Split by "txn[]" but preserve the prefix
239+
String[] parts = sqlGroup.split("(?=txn\\[\\])");
240+
for (String part : parts) {
241+
if (part.startsWith("txn[]")) {
242+
allSqlStatements.add(part);
243+
}
244+
}
245+
}
240246

241247
// Then process them to fold comments into previous lines
242248
List<String> txnLog = new ArrayList<>();
@@ -273,29 +279,41 @@ private void assertSQL(
273279
statementMap.getOrDefault("UNKNOWN", List.of()).size(),
274280
0,
275281
String.format(
276-
"(%s) Expected all SQL statements to be categorized: %s",
277-
description, statementMap.get("UNKNOWN")));
282+
"(%s) Expected all SQL statements to be categorized:\n%s",
283+
description, formatUnknownStatements(statementMap.get("UNKNOWN"))));
278284
assertEquals(
279285
statementMap.getOrDefault("SELECT", List.of()).size(),
280286
expectedSelectCount,
281287
String.format(
282-
"(%s) Expected SELECT SQL count mismatch filtering for (%s): %s",
283-
description, mustInclude, statementMap.get("SELECT")));
288+
"(%s) Expected SELECT SQL count mismatch filtering for (%s):\n%s",
289+
description, mustInclude, formatUnknownStatements(statementMap.get("SELECT"))));
284290
assertEquals(
285291
statementMap.getOrDefault("INSERT", List.of()).size(),
286292
expectedInsertCount,
287293
String.format(
288-
"(%s) Expected INSERT SQL count mismatch filtering for (%s): %s",
289-
description, mustInclude, statementMap.get("INSERT")));
294+
"(%s) Expected INSERT SQL count mismatch filtering for (%s):\n%s",
295+
description, mustInclude, formatUnknownStatements(statementMap.get("INSERT"))));
290296
assertEquals(
291297
statementMap.getOrDefault("UPDATE", List.of()).size(),
292298
expectedUpdateCount,
293299
String.format(
294-
"(%s), Expected UPDATE SQL count mismatch filtering for (%s): %s",
295-
description, mustInclude, statementMap.get("UPDATE")));
300+
"(%s), Expected UPDATE SQL count mismatch filtering for (%s):\n%s",
301+
description, mustInclude, formatUnknownStatements(statementMap.get("UPDATE"))));
296302
} finally {
297303
// Ensure logging is stopped even if assertions fail
298304
LoggedSql.stop();
299305
}
300306
}
307+
308+
private static String formatUnknownStatements(List<String> statements) {
309+
if (statements == null || statements.isEmpty()) {
310+
return " No unknown statements";
311+
}
312+
313+
StringBuilder builder = new StringBuilder();
314+
for (int i = 0; i < statements.size(); i++) {
315+
builder.append(" ").append(i + 1).append(". ").append(statements.get(i)).append("\n");
316+
}
317+
return builder.toString();
318+
}
301319
}

0 commit comments

Comments
 (0)