|
@@ -0,0 +1,33 @@
|
|
|
|
|
+package com.etotem.cfc.config;
|
|
|
|
|
+
|
|
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
|
|
+import org.junit.jupiter.api.extension.ExtendWith;
|
|
|
|
|
+import org.mockito.ArgumentCaptor;
|
|
|
|
|
+import org.mockito.InjectMocks;
|
|
|
|
|
+import org.mockito.Mock;
|
|
|
|
|
+import org.mockito.junit.jupiter.MockitoExtension;
|
|
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
|
|
+
|
|
|
|
|
+import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
|
+import static org.mockito.ArgumentMatchers.eq;
|
|
|
|
|
+import static org.mockito.Mockito.verify;
|
|
|
|
|
+
|
|
|
|
|
+@ExtendWith(MockitoExtension.class)
|
|
|
|
|
+class DatabaseInitializerSeedTest {
|
|
|
|
|
+
|
|
|
|
|
+ @Mock
|
|
|
|
|
+ private JdbcTemplate jdbcTemplate;
|
|
|
|
|
+
|
|
|
|
|
+ @InjectMocks
|
|
|
|
|
+ private DatabaseInitializer initializer;
|
|
|
|
|
+
|
|
|
|
|
+ @Test
|
|
|
|
|
+ void seedExpectedIndicator_onlyWritesWhenAbsent() {
|
|
|
|
|
+ initializer.seedExpectedIndicator("dan_a1", "[\"总分\"]");
|
|
|
|
|
+
|
|
|
|
|
+ ArgumentCaptor<String> sql = ArgumentCaptor.forClass(String.class);
|
|
|
|
|
+ verify(jdbcTemplate).update(sql.capture(), eq("[\"总分\"]"), eq("dan_a1"));
|
|
|
|
|
+ assertTrue(sql.getValue().contains("(expected_indicators IS NULL OR expected_indicators = '')"),
|
|
|
|
|
+ "SQL 必须仅在列为空时写入,避免覆盖管理员编辑");
|
|
|
|
|
+ }
|
|
|
|
|
+}
|