|
|
@@ -8,10 +8,15 @@ import com.malk.service.dingtalk.DDClient;
|
|
|
import com.malk.service.dingtalk.DDClient_Contacts;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
+import java.lang.reflect.Method;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertNull;
|
|
|
import static org.mockito.BDDMockito.given;
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
import static org.mockito.Mockito.never;
|
|
|
@@ -19,6 +24,36 @@ import static org.mockito.Mockito.verify;
|
|
|
|
|
|
class MingleiDocumentServiceImplTest {
|
|
|
|
|
|
+ /**
|
|
|
+ * 验证未命中审批矩阵时仍返回完整负责人字段,调用方可直接读取字段值。
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ void extractDepartmentManagersReturnsNullFieldsWhenMatrixHasNoMatch() throws Exception {
|
|
|
+ MingleiDocumentServiceImpl service = new MingleiDocumentServiceImpl(
|
|
|
+ mock(YDClient.class),
|
|
|
+ mock(DDClient.class),
|
|
|
+ mock(DDClient_Contacts.class),
|
|
|
+ mock(DDConf.class),
|
|
|
+ new YidaApplicationsProperties(),
|
|
|
+ new ObjectMapper());
|
|
|
+ Map<String, Object> queryResult = new LinkedHashMap<String, Object>();
|
|
|
+ queryResult.put("records", Collections.emptyList());
|
|
|
+
|
|
|
+ Method method = MingleiDocumentServiceImpl.class
|
|
|
+ .getDeclaredMethod("extractDepartmentManagers", Map.class);
|
|
|
+ method.setAccessible(true);
|
|
|
+ Map<String, Object> result = (Map<String, Object>) method.invoke(service, queryResult);
|
|
|
+
|
|
|
+ assertEquals(6, result.size());
|
|
|
+ assertNull(result.get("employeeField_mszdqrl8"));
|
|
|
+ assertNull(result.get("employeeField_mszdqrl9"));
|
|
|
+ assertNull(result.get("employeeField_mszdqrla"));
|
|
|
+ assertNull(result.get("employeeField_mszdqrlb"));
|
|
|
+ assertNull(result.get("employeeField_mualkf6a"));
|
|
|
+ assertNull(result.get("employeeField_mszdqrl3"));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 验证 type 为 0 时会合并当前部门与子部门成员,并保持去重顺序。
|
|
|
*/
|