|
@@ -0,0 +1,68 @@
|
|
|
|
|
+package com.etotem.cfc.controller.admin;
|
|
|
|
|
+
|
|
|
|
|
+import com.etotem.cfc.common.Result;
|
|
|
|
|
+import com.etotem.cfc.entity.ReportTypeRegistry;
|
|
|
|
|
+import com.etotem.cfc.mapper.ReportTypeRegistryMapper;
|
|
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
|
|
+import org.junit.jupiter.api.extension.ExtendWith;
|
|
|
|
|
+import org.mockito.InjectMocks;
|
|
|
|
|
+import org.mockito.Mock;
|
|
|
|
|
+import org.mockito.junit.jupiter.MockitoExtension;
|
|
|
|
|
+
|
|
|
|
|
+import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
|
+import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
|
+import static org.mockito.Mockito.never;
|
|
|
|
|
+import static org.mockito.Mockito.verify;
|
|
|
|
|
+import static org.mockito.Mockito.verifyNoInteractions;
|
|
|
|
|
+
|
|
|
|
|
+@ExtendWith(MockitoExtension.class)
|
|
|
|
|
+class ReportParserAdminControllerTest {
|
|
|
|
|
+
|
|
|
|
|
+ @Mock
|
|
|
|
|
+ private ReportTypeRegistryMapper typeRegistryMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @InjectMocks
|
|
|
|
|
+ private ReportParserAdminController controller;
|
|
|
|
|
+
|
|
|
|
|
+ private ReportTypeRegistry baseType() {
|
|
|
|
|
+ ReportTypeRegistry t = new ReportTypeRegistry();
|
|
|
|
|
+ t.setId(1L);
|
|
|
|
|
+ t.setTypeId("dan_a1");
|
|
|
|
|
+ t.setDisplayName("素质测评A1");
|
|
|
|
|
+ return t;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Test
|
|
|
|
|
+ void saveType_rejectsInvalidJsonArray() {
|
|
|
|
|
+ ReportTypeRegistry t = baseType();
|
|
|
|
|
+ t.setExpectedIndicators("not-json");
|
|
|
|
|
+
|
|
|
|
|
+ Result<Void> r = controller.saveType(t);
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals(500, r.getCode());
|
|
|
|
|
+ assertTrue(r.getMessage().contains("expectedIndicators"));
|
|
|
|
|
+ verifyNoInteractions(typeRegistryMapper);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Test
|
|
|
|
|
+ void saveType_rejectsJsonArrayWithNonStringElement() {
|
|
|
|
|
+ ReportTypeRegistry t = baseType();
|
|
|
|
|
+ t.setExpectedIndicators("[1,2,3]");
|
|
|
|
|
+
|
|
|
|
|
+ Result<Void> r = controller.saveType(t);
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals(500, r.getCode());
|
|
|
|
|
+ verify(typeRegistryMapper, never()).updateById(t);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Test
|
|
|
|
|
+ void saveType_acceptsValidJsonArray() {
|
|
|
|
|
+ ReportTypeRegistry t = baseType();
|
|
|
|
|
+ t.setExpectedIndicators("[\"总分\",\"百分位\"]");
|
|
|
|
|
+
|
|
|
|
|
+ Result<Void> r = controller.saveType(t);
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals(200, r.getCode());
|
|
|
|
|
+ verify(typeRegistryMapper).updateById(t);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|