This commit is contained in:
2026-08-07 09:06:19 +08:00
parent a5dc0f78c3
commit 897f91af20
5 changed files with 121 additions and 0 deletions
@@ -7,9 +7,11 @@ import com.baiyue.iam.client.AuthAccountClient;
import com.baiyue.iam.dto.MemberDtos.*;
import com.baiyue.iam.entity.IamMembership;
import com.baiyue.iam.entity.IamRole;
import com.baiyue.iam.entity.IamTenant;
import com.baiyue.iam.entity.IamUser;
import com.baiyue.iam.mapper.IamRoleMapper;
import com.baiyue.iam.repository.MemberRepository;
import com.baiyue.iam.repository.TenantRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import jakarta.annotation.Resource;
@@ -28,6 +30,7 @@ import static org.mockito.Mockito.*;
@TestPropertySource(properties = "baiyue.security.internal-service-token=internal-token")
class MemberServiceTest {
@MockBean private MemberRepository repository;
@MockBean private TenantRepository tenantRepository;
@MockBean private IamRoleMapper roleMapper;
@MockBean private AuthAccountClient auth;
@Resource private MemberService service;
@@ -52,6 +55,28 @@ class MemberServiceTest {
verifyNoInteractions(auth);
}
@Test void shouldReturnOwnerAccountForPlatformCustomerDetail() {
IamTenant tenant = new IamTenant();
tenant.setId(100L); tenant.setTenantType("MERCHANT");
member.setMemberType("OWNER");
user.setPhone("13800138000"); user.setEmail("owner@example.com");
when(tenantRepository.findTenant(100L)).thenReturn(tenant);
when(repository.findByTenant(100L)).thenReturn(List.of(member));
IamRole ownerRole = new IamRole();
ownerRole.setId(50L); ownerRole.setTenantId(100L); ownerRole.setRoleName("企业管理员");
when(roleMapper.selectById(50L)).thenReturn(ownerRole);
when(auth.summary("internal-token", 40L)).thenReturn(ApiResponse.success(
new AuthAccountClient.AccountSummary(40L, "merchant_owner", "企业管理员", "ACTIVE")));
var result = service.platformList(100L);
assertEquals(1, result.size());
assertEquals("merchant_owner", result.get(0).username());
assertEquals("OWNER", result.get(0).memberType());
assertEquals("ACTIVE", result.get(0).status());
assertEquals(List.of("企业管理员"), result.get(0).roleNames());
}
@Test void shouldHandleCase02() {
when(repository.findByTenantAndId(200L, 20L)).thenReturn(null);
assertThrows(BizException.class, () -> service.detail(200L, 20L));