From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsPermission/DmsUserDisplayNameResolverTest.java | 62 +++++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsPermission/DmsUserDisplayNameResolverTest.java b/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsPermission/DmsUserDisplayNameResolverTest.java
new file mode 100644
index 0000000..53a2f62
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsPermission/DmsUserDisplayNameResolverTest.java
@@ -0,0 +1,62 @@
+package jnpf.dmsPermission;
+
+import jnpf.permission.UserApi;
+import jnpf.permission.entity.UserEntity;
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+class DmsUserDisplayNameResolverTest {
+
+ @Test
+ void resolvesDistinctUsersInOneBatchAndFormatsAvailableFields() {
+ UserApi userApi = mock(UserApi.class);
+ DmsUserDisplayNameResolver resolver = new DmsUserDisplayNameResolver(userApi);
+ when(userApi.getUserName(anyList())).thenReturn(Arrays.asList(
+ user("user-1", "寮犱笁", "zhangsan"),
+ user("user-2", "鏉庡洓", null),
+ user("user-3", null, "wangwu"),
+ user("user-4", " ", " ")));
+
+ Map<String, String> result = resolver.resolve(Arrays.asList(
+ "user-1", " user-1 ", "user-2", "user-3", "user-4", null));
+
+ assertEquals("寮犱笁锛坺hangsan锛�", result.get("user-1"));
+ assertEquals("鏉庡洓", result.get("user-2"));
+ assertEquals("wangwu", result.get("user-3"));
+ assertFalse(result.containsKey("user-4"));
+ ArgumentCaptor<List<String>> ids = ArgumentCaptor.forClass(List.class);
+ verify(userApi).getUserName(ids.capture());
+ assertEquals(Arrays.asList("user-1", "user-2", "user-3", "user-4"), ids.getValue());
+ }
+
+ @Test
+ void returnsEmptyMapWhenUserServiceIsUnavailable() {
+ UserApi userApi = mock(UserApi.class);
+ DmsUserDisplayNameResolver resolver = new DmsUserDisplayNameResolver(userApi);
+ when(userApi.getUserName(anyList())).thenThrow(new IllegalStateException("unavailable"));
+
+ Map<String, String> result = resolver.resolve(Collections.singletonList("user-1"));
+
+ assertEquals(Collections.emptyMap(), result);
+ }
+
+ private UserEntity user(String id, String realName, String account) {
+ UserEntity result = new UserEntity();
+ result.setId(id);
+ result.setRealName(realName);
+ result.setAccount(account);
+ return result;
+ }
+}
--
Gitblit v1.8.0