test(integration): JDBC 集成测试 Testcontainers 兜底 + 全结构回环矩阵 (ACM2-29 P3-A)
- PgTestSupport 三级解析:MSGX_PG_* 显式环境变量 → Testcontainers 自动起 postgres:17-alpine 隔离容器(JVM 单例复用,docker 不可用才跳过)→ assumeTrue 绝不误报通过;解决了「本机端口被占/无库则集成测试静默跳过」的验收假绿问题 - loadCollections 只输出非空属性(缺失键语义),write→read 线格式一致 - 新增 readAfterWrite 矩阵用例:16 类结构(多行/重复资源号/非连续源序号/异常 前缀列/文本旁列)persist → findNextStateByFlid 深度等值 + wire(nextState) == wire(readAfterWrite) 双断言(评审 F5 持久化侧+线格式侧闭环) 验证:MSGX_PG_PORT=5433 外接库 108 用例全绿;无环境变量 Testcontainers 自动容器路径 18/18 全绿
This commit is contained in:
+11
-9
@@ -136,9 +136,11 @@ internal object FlightDetailTables {
|
||||
"SELECT * FROM ${spec.table} WHERE flid = ? ORDER BY ordinal ASC",
|
||||
{ ps -> ps.setString(1, flid) },
|
||||
) { rs ->
|
||||
spec.columns.associate { (attr, col) -> attr to rs.getString(col) }.toMutableMap().apply {
|
||||
put(spec.seqAttr, rs.getString("source_seq"))
|
||||
}
|
||||
// 只输出非空属性(缺失键语义),保证 write→read 线格式一致(评审 F5)
|
||||
spec.columns.associate { (attr, col) -> attr to rs.getString(col) }
|
||||
.filterValues { it != null }
|
||||
.toMutableMap()
|
||||
.apply { rs.getString("source_seq")?.let { put(spec.seqAttr, it) } }
|
||||
}
|
||||
if (rows.isNotEmpty()) {
|
||||
out[spec.collectionKey] = mapper.writeValueAsString(rows)
|
||||
@@ -149,12 +151,12 @@ internal object FlightDetailTables {
|
||||
"SELECT source_seq, apcd, scat, scdt FROM flight_route_point WHERE flid = ? AND route_kind = ? ORDER BY ordinal ASC",
|
||||
{ ps -> ps.setString(1, flid); ps.setString(2, kind) },
|
||||
) { rs ->
|
||||
mapOf(
|
||||
"RTNO" to rs.getString("source_seq"),
|
||||
"APCD" to rs.getString("apcd"),
|
||||
"SCAT" to rs.getString("scat"),
|
||||
"SCDT" to rs.getString("scdt"),
|
||||
)
|
||||
buildMap {
|
||||
rs.getString("source_seq")?.let { put("RTNO", it) }
|
||||
rs.getString("apcd")?.let { put("APCD", it) }
|
||||
rs.getString("scat")?.let { put("SCAT", it) }
|
||||
rs.getString("scdt")?.let { put("SCDT", it) }
|
||||
}
|
||||
}
|
||||
if (rows.isNotEmpty()) {
|
||||
out[key] = mapper.writeValueAsString(rows)
|
||||
|
||||
Reference in New Issue
Block a user