From b143fcf460a576ce6e7f2923559d406aec2f5a81 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 11 Aug 2026 07:20:15 +0900 Subject: [PATCH 1/3] test(cdc): reject blank DDL validation mode --- ...SchemaChangeReplicaValidationModeTest.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java diff --git a/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java b/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java new file mode 100644 index 00000000..0123c0e7 --- /dev/null +++ b/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java @@ -0,0 +1,28 @@ +package com.xtrmetl.cdc.replication; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.springframework.jdbc.core.JdbcTemplate; + +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.mock; + +class SchemaChangeReplicaValidationModeTest { + + @Test + void rejectsBlankValidationModeInsteadOfSilentlyDisablingPolicy() { + JdbcTemplate jdbcTemplate = mock(JdbcTemplate.class); + + assertThrows( + IllegalArgumentException.class, + () -> new SchemaChangeReplicaApplier( + jdbcTemplate, + new ObjectMapper(), + true, + " ", + "CREATE TABLE,ALTER TABLE,CREATE INDEX", + "DROP TABLE,DROP SCHEMA,DROP DATABASE,TRUNCATE" + ) + ); + } +} From 6640bc6f55d20f2393b6688470ab8414f01f4029 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 11 Aug 2026 07:23:58 +0900 Subject: [PATCH 2/3] test(cdc): align DDL validation defaults --- ...SchemaChangeReplicaValidationModeTest.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java b/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java index 0123c0e7..9e196670 100644 --- a/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java +++ b/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java @@ -1,9 +1,11 @@ package com.xtrmetl.cdc.replication; import com.fasterxml.jackson.databind.ObjectMapper; +import com.xtrmetl.cdc.config.XtrmetlProperties; import org.junit.jupiter.api.Test; import org.springframework.jdbc.core.JdbcTemplate; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.mock; @@ -25,4 +27,26 @@ void rejectsBlankValidationModeInsteadOfSilentlyDisablingPolicy() { ) ); } + + @Test + void rejectsNullValidationModeInsteadOfSilentlyDisablingPolicy() { + JdbcTemplate jdbcTemplate = mock(JdbcTemplate.class); + + assertThrows( + IllegalArgumentException.class, + () -> new SchemaChangeReplicaApplier( + jdbcTemplate, + new ObjectMapper(), + true, + null, + "CREATE TABLE,ALTER TABLE,CREATE INDEX", + "DROP TABLE,DROP SCHEMA,DROP DATABASE,TRUNCATE" + ) + ); + } + + @Test + void configurationPropertiesDefaultToWhitelist() { + assertEquals("whitelist", new XtrmetlProperties().getReplica().getDdlValidationMode()); + } } From 735af4f1f66f9b403321a20dcd736adeca001d4c Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 11 Aug 2026 08:01:44 +0900 Subject: [PATCH 3/3] test(cdc): isolate blank validation fail-closed red --- .../replication/SchemaChangeReplicaValidationModeTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java b/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java index 9e196670..dc622738 100644 --- a/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java +++ b/cdc-service/src/test/java/com/xtrmetl/cdc/replication/SchemaChangeReplicaValidationModeTest.java @@ -1,11 +1,9 @@ package com.xtrmetl.cdc.replication; import com.fasterxml.jackson.databind.ObjectMapper; -import com.xtrmetl.cdc.config.XtrmetlProperties; import org.junit.jupiter.api.Test; import org.springframework.jdbc.core.JdbcTemplate; -import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.mock; @@ -44,9 +42,4 @@ void rejectsNullValidationModeInsteadOfSilentlyDisablingPolicy() { ) ); } - - @Test - void configurationPropertiesDefaultToWhitelist() { - assertEquals("whitelist", new XtrmetlProperties().getReplica().getDdlValidationMode()); - } }