hxd 2 miesięcy temu
rodzic
commit
a1e18a657b

+ 625 - 625
portal-service-application/src/test/java/com/hfln/portal/application/controller/wap/GroupControllerTest.java

@@ -1,625 +1,625 @@
-package com.hfln.portal.application.controller.wap;
-
-import cn.hfln.framework.dto.ApiResult;
-import cn.hfln.framework.extension.BizException;
-import com.hfln.portal.common.dto.data.device.DeviceDTO;
-import com.hfln.portal.common.dto.data.group.GroupDTO;
-import com.hfln.portal.common.request.group.*;
-import com.hfln.portal.domain.exception.ErrorEnum;
-import com.hfln.portal.domain.gateway.GroupGateway;
-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 org.springframework.test.util.ReflectionTestUtils;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-@ExtendWith(MockitoExtension.class)
-class GroupControllerTest {
-    
-    // 常量定义
-    private static final String SUCCESS_CODE = "200";
-    private static final Long TEST_USER_ID = 1L;
-    private static final Long TEST_GROUP_ID = 1L;
-    private static final String TEST_GROUP_NAME = "测试群组";
-    private static final String TEST_GROUP_UUID = "test-group-uuid";
-    private static final Long TEST_DEVICE_ID = 1L;
-    
-    @Mock
-    private GroupGateway groupGateway;
-    
-    @InjectMocks
-    private GroupController groupController;
-
-    // ========== 添加群组相关测试 ==========
-    @Test
-    void addGroup_Success() {
-        // 准备测试数据
-        GroupAddParams request = new GroupAddParams();
-        request.setGroupName(TEST_GROUP_NAME);
-        request.setUserId(TEST_USER_ID);
-        
-        // 模拟Gateway行为
-        when(groupGateway.addGroup(request)).thenReturn(true);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.addGroup(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).addGroup(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void addGroup_Failed() {
-        // 准备测试数据
-        GroupAddParams request = new GroupAddParams();
-        request.setGroupName(TEST_GROUP_NAME);
-        request.setUserId(TEST_USER_ID);
-        
-        // 模拟Gateway行为 - 返回失败
-        when(groupGateway.addGroup(request)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.addGroup(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).addGroup(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void addGroup_ThrowsException() {
-        // 准备测试数据
-        GroupAddParams request = new GroupAddParams();
-        request.setGroupName(TEST_GROUP_NAME);
-        request.setUserId(TEST_USER_ID);
-        
-        // 模拟Gateway行为 - 抛出异常
-        when(groupGateway.addGroup(request)).thenThrow(new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage()));
-        
-        // 验证异常抛出
-        assertThrows(BizException.class, () -> groupController.addGroup(request));
-        
-        // 验证交互
-        verify(groupGateway, times(1)).addGroup(request);
-    }
-
-    // ========== 删除群组相关测试 ==========
-    @Test
-    void deleteGroup_Success() {
-        // 准备测试数据
-        Long groupId = TEST_GROUP_ID;
-        
-        // 模拟Gateway行为
-        when(groupGateway.deleteGroup(groupId)).thenReturn(true);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.deleteGroup(groupId);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).deleteGroup(groupId);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void deleteGroup_Failed() {
-        // 准备测试数据
-        Long groupId = TEST_GROUP_ID;
-        
-        // 模拟Gateway行为 - 返回失败
-        when(groupGateway.deleteGroup(groupId)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.deleteGroup(groupId);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).deleteGroup(groupId);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void deleteGroup_ThrowsException() {
-        // 准备测试数据
-        Long groupId = TEST_GROUP_ID;
-        
-        // 模拟Gateway行为 - 抛出异常
-        when(groupGateway.deleteGroup(groupId)).thenThrow(new BizException(ErrorEnum.GROUP_IS_NOT_EXIST.getErrorCode(), ErrorEnum.GROUP_IS_NOT_EXIST.getErrorMessage()));
-        
-        // 验证异常抛出
-        assertThrows(BizException.class, () -> groupController.deleteGroup(groupId));
-        
-        // 验证交互
-        verify(groupGateway, times(1)).deleteGroup(groupId);
-    }
-
-    // ========== 更新群组相关测试 ==========
-    @Test
-    void updateGroup_Success() {
-        // 准备测试数据
-        GroupUpdateParams params = new GroupUpdateParams();
-        params.setGroupUuid(TEST_GROUP_UUID);
-        params.setGroupName(TEST_GROUP_NAME);
-        params.setLength(new BigDecimal("100"));
-        params.setWidth(new BigDecimal("50"));
-        params.setNorthAngle(new BigDecimal("45"));
-        
-        // 模拟Gateway行为
-        when(groupGateway.updateGroup(params)).thenReturn(true);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.updateGroup(params);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).updateGroup(params);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void updateGroup_Failed() {
-        // 准备测试数据
-        GroupUpdateParams params = new GroupUpdateParams();
-        params.setGroupUuid(TEST_GROUP_UUID);
-        params.setGroupName(TEST_GROUP_NAME);
-        params.setLength(new BigDecimal("100"));
-        params.setWidth(new BigDecimal("50"));
-        params.setNorthAngle(new BigDecimal("45"));
-        
-        // 模拟Gateway行为 - 返回失败
-        when(groupGateway.updateGroup(params)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.updateGroup(params);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).updateGroup(params);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    // ========== 查询群组列表相关测试 ==========
-    @Test
-    void groupList_Success() {
-        // 准备测试数据
-        Long userId = TEST_USER_ID;
-        
-        List<GroupDTO> expectedGroups = new ArrayList<>();
-        GroupDTO group = new GroupDTO();
-        group.setDevGroupId(TEST_GROUP_ID);
-        group.setGroupUuid(TEST_GROUP_UUID);
-        group.setGroupName(TEST_GROUP_NAME);
-        group.setTotalDevice(5);
-        group.setOnlineDevice(3);
-        group.setWarningDevice(1);
-        expectedGroups.add(group);
-        
-        // 模拟Gateway行为
-        when(groupGateway.queryGroupList(userId)).thenReturn(expectedGroups);
-        
-        // 执行测试
-        ApiResult<List<GroupDTO>> result = groupController.GroupList(userId);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).queryGroupList(userId);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(expectedGroups, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void groupList_EmptyResult() {
-        // 准备测试数据
-        Long userId = TEST_USER_ID;
-        
-        // 模拟Gateway行为 - 返回空列表
-        when(groupGateway.queryGroupList(userId)).thenReturn(Collections.emptyList());
-        
-        // 执行测试
-        ApiResult<List<GroupDTO>> result = groupController.GroupList(userId);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).queryGroupList(userId);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(Collections.emptyList(), ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void groupList_NullUserId() {
-        // 模拟Gateway行为 - 返回空列表
-        when(groupGateway.queryGroupList(null)).thenReturn(Collections.emptyList());
-        
-        // 执行测试
-        ApiResult<List<GroupDTO>> result = groupController.GroupList(null);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).queryGroupList(null);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(Collections.emptyList(), ReflectionTestUtils.getField(result, "data"));
-    }
-
-    // ========== 查询群组设备列表相关测试 ==========
-    @Test
-    void queryGroupById_Success() {
-        // 准备测试数据
-        Long groupId = TEST_GROUP_ID;
-        
-        List<DeviceDTO> expectedDevices = new ArrayList<>();
-        DeviceDTO device = new DeviceDTO();
-        device.setDevId(TEST_DEVICE_ID);
-        device.setDevName("测试设备");
-        expectedDevices.add(device);
-        
-        // 模拟Gateway行为
-        when(groupGateway.queryGroupDeviceInfoById(groupId)).thenReturn(expectedDevices);
-        
-        // 执行测试
-        ApiResult<List<DeviceDTO>> result = groupController.queryGroupById(groupId);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).queryGroupDeviceInfoById(groupId);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(expectedDevices, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void queryGroupById_EmptyResult() {
-        // 准备测试数据
-        Long groupId = TEST_GROUP_ID;
-        
-        // 模拟Gateway行为 - 返回空列表
-        when(groupGateway.queryGroupDeviceInfoById(groupId)).thenReturn(Collections.emptyList());
-        
-        // 执行测试
-        ApiResult<List<DeviceDTO>> result = groupController.queryGroupById(groupId);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).queryGroupDeviceInfoById(groupId);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(Collections.emptyList(), ReflectionTestUtils.getField(result, "data"));
-    }
-
-    // ========== 添加设备到群组相关测试 ==========
-    @Test
-    void addDeviceToGroup_Success() {
-        // 准备测试数据
-        AddDeviceToGroupParams request = new AddDeviceToGroupParams();
-        request.setDevId(TEST_DEVICE_ID);
-        request.setGroupId(TEST_GROUP_ID);
-        
-        // 模拟Gateway行为
-        when(groupGateway.addDeviceToGroup(request)).thenReturn(true);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.addDeviceToGroup(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).addDeviceToGroup(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void addDeviceToGroup_Failed() {
-        // 准备测试数据
-        AddDeviceToGroupParams request = new AddDeviceToGroupParams();
-        request.setDevId(TEST_DEVICE_ID);
-        request.setGroupId(TEST_GROUP_ID);
-        
-        // 模拟Gateway行为 - 返回失败
-        when(groupGateway.addDeviceToGroup(request)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.addDeviceToGroup(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).addDeviceToGroup(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void addDeviceToGroup_ThrowsException() {
-        // 准备测试数据
-        AddDeviceToGroupParams request = new AddDeviceToGroupParams();
-        request.setDevId(TEST_DEVICE_ID);
-        request.setGroupId(TEST_GROUP_ID);
-        
-        // 模拟Gateway行为 - 抛出异常
-        when(groupGateway.addDeviceToGroup(request)).thenThrow(new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(), ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage()));
-        
-        // 验证异常抛出
-        assertThrows(BizException.class, () -> groupController.addDeviceToGroup(request));
-        
-        // 验证交互
-        verify(groupGateway, times(1)).addDeviceToGroup(request);
-    }
-
-    // ========== 从群组删除设备相关测试 ==========
-    @Test
-    void deleteDeviceFromGroup_Success() {
-        // 准备测试数据
-        DeleteDeviceFromGroupParams request = new DeleteDeviceFromGroupParams();
-        request.setDevId(TEST_DEVICE_ID);
-        request.setGroupId(TEST_GROUP_ID);
-        
-        // 模拟Gateway行为
-        when(groupGateway.deleteDeviceFromGroup(request)).thenReturn(true);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.deleteDeviceFromGroup(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).deleteDeviceFromGroup(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void deleteDeviceFromGroup_Failed() {
-        // 准备测试数据
-        DeleteDeviceFromGroupParams request = new DeleteDeviceFromGroupParams();
-        request.setDevId(TEST_DEVICE_ID);
-        request.setGroupId(TEST_GROUP_ID);
-        
-        // 模拟Gateway行为 - 返回失败
-        when(groupGateway.deleteDeviceFromGroup(request)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.deleteDeviceFromGroup(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).deleteDeviceFromGroup(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    // ========== 分享群组相关测试 ==========
-    @Test
-    void shareGroup_Success() {
-        // 准备测试数据
-        ShareGroupParams request = new ShareGroupParams();
-        request.setGroupUuid(TEST_GROUP_UUID);
-        request.setSharerUserId(TEST_USER_ID);
-        request.setSharerPhone("13800138000");
-        
-        // 模拟Gateway行为
-        when(groupGateway.shareGroup(request)).thenReturn(true);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.shareGroup(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).shareGroup(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void shareGroup_Failed() {
-        // 准备测试数据
-        ShareGroupParams request = new ShareGroupParams();
-        request.setGroupUuid(TEST_GROUP_UUID);
-        request.setSharerUserId(TEST_USER_ID);
-        request.setSharerPhone("13800138000");
-        
-        // 模拟Gateway行为 - 返回失败
-        when(groupGateway.shareGroup(request)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.shareGroup(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).shareGroup(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void shareGroup_ThrowsException() {
-        // 准备测试数据
-        ShareGroupParams request = new ShareGroupParams();
-        request.setGroupUuid(TEST_GROUP_UUID);
-        request.setSharerUserId(TEST_USER_ID);
-        request.setSharerPhone("13800138000");
-        
-        // 模拟Gateway行为 - 抛出异常
-        when(groupGateway.shareGroup(request)).thenThrow(new BizException(ErrorEnum.GROUP_IS_NOT_EXIST.getErrorCode(), ErrorEnum.GROUP_IS_NOT_EXIST.getErrorMessage()));
-        
-        // 验证异常抛出
-        assertThrows(BizException.class, () -> groupController.shareGroup(request));
-        
-        // 验证交互
-        verify(groupGateway, times(1)).shareGroup(request);
-    }
-
-    // ========== 群组分享确认相关测试 ==========
-    @Test
-    void groupShareConfirm_Success() {
-        // 准备测试数据
-        GroupShareConfirmParams request = new GroupShareConfirmParams();
-        request.setSharedUserId(TEST_USER_ID);
-        request.setSharedPhone("13800138000");
-        request.setUuid(TEST_GROUP_UUID);
-        
-        // 模拟Gateway行为
-        when(groupGateway.groupShareConfirm(request)).thenReturn(true);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.GroupShareConfirm(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).groupShareConfirm(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void groupShareConfirm_Failed() {
-        // 准备测试数据
-        GroupShareConfirmParams request = new GroupShareConfirmParams();
-        request.setSharedUserId(TEST_USER_ID);
-        request.setSharedPhone("13800138000");
-        request.setUuid(TEST_GROUP_UUID);
-        
-        // 模拟Gateway行为 - 返回失败
-        when(groupGateway.groupShareConfirm(request)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.GroupShareConfirm(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).groupShareConfirm(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void groupShareConfirm_ThrowsException() {
-        // 准备测试数据
-        GroupShareConfirmParams request = new GroupShareConfirmParams();
-        request.setSharedUserId(TEST_USER_ID);
-        request.setSharedPhone("13800138000");
-        request.setUuid(TEST_GROUP_UUID);
-        
-        // 模拟Gateway行为 - 抛出异常
-        when(groupGateway.groupShareConfirm(request)).thenThrow(new BizException(ErrorEnum.SHARE_IS_EXPIRED.getErrorCode(), ErrorEnum.SHARE_IS_EXPIRED.getErrorMessage()));
-        
-        // 验证异常抛出
-        assertThrows(BizException.class, () -> groupController.GroupShareConfirm(request));
-        
-        // 验证交互
-        verify(groupGateway, times(1)).groupShareConfirm(request);
-    }
-
-    @Test
-    void groupShareConfirm_NullUserId() {
-        // 准备测试数据
-        GroupShareConfirmParams request = new GroupShareConfirmParams();
-        request.setSharedUserId(null);
-        request.setSharedPhone("13800138000");
-        request.setUuid(TEST_GROUP_UUID);
-        
-        // 模拟Gateway行为
-        when(groupGateway.groupShareConfirm(request)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.GroupShareConfirm(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).groupShareConfirm(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    // ========== 群组分享处理相关测试 ==========
-    @Test
-    void groupShareHandle_Success() {
-        // 准备测试数据
-        GroupShareHandleParams request = new GroupShareHandleParams();
-        request.setState(1); // 接受状态
-        request.setUuid(TEST_GROUP_UUID);
-        
-        // 模拟Gateway行为
-        when(groupGateway.groupShareHandle(request)).thenReturn(true);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.groupShareHandle(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).groupShareHandle(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void groupShareHandle_Failed() {
-        // 准备测试数据
-        GroupShareHandleParams request = new GroupShareHandleParams();
-        request.setState(2); // 拒绝状态
-        request.setUuid(TEST_GROUP_UUID);
-        
-        // 模拟Gateway行为 - 返回失败
-        when(groupGateway.groupShareHandle(request)).thenReturn(false);
-        
-        // 执行测试
-        ApiResult<Boolean> result = groupController.groupShareHandle(request);
-        
-        // 验证交互
-        verify(groupGateway, times(1)).groupShareHandle(request);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
-    }
-
-    @Test
-    void groupShareHandle_ThrowsException() {
-        // 准备测试数据
-        GroupShareHandleParams request = new GroupShareHandleParams();
-        request.setState(2); // 拒绝状态
-        request.setUuid(TEST_GROUP_UUID);
-        
-        // 模拟Gateway行为 - 抛出异常
-        when(groupGateway.groupShareHandle(request)).thenThrow(new BizException(ErrorEnum.SHARE_GROUP_IS_NOT_EXIST.getErrorCode(), ErrorEnum.SHARE_GROUP_IS_NOT_EXIST.getErrorMessage()));
-        
-        // 验证异常抛出
-        assertThrows(BizException.class, () -> groupController.groupShareHandle(request));
-        
-        // 验证交互
-        verify(groupGateway, times(1)).groupShareHandle(request);
-    }
-}
+//package com.hfln.portal.application.controller.wap;
+//
+//import cn.hfln.framework.dto.ApiResult;
+//import cn.hfln.framework.extension.BizException;
+//import com.hfln.portal.common.dto.data.device.DeviceDTO;
+//import com.hfln.portal.common.dto.data.group.GroupDTO;
+//import com.hfln.portal.common.request.group.*;
+//import com.hfln.portal.domain.exception.ErrorEnum;
+//import com.hfln.portal.domain.gateway.GroupGateway;
+//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 org.springframework.test.util.ReflectionTestUtils;
+//
+//import java.math.BigDecimal;
+//import java.util.ArrayList;
+//import java.util.Collections;
+//import java.util.List;
+//
+//import static org.junit.jupiter.api.Assertions.*;
+//import static org.mockito.Mockito.*;
+//
+//@ExtendWith(MockitoExtension.class)
+//class GroupControllerTest {
+//
+//    // 常量定义
+//    private static final String SUCCESS_CODE = "200";
+//    private static final Long TEST_USER_ID = 1L;
+//    private static final Long TEST_GROUP_ID = 1L;
+//    private static final String TEST_GROUP_NAME = "测试群组";
+//    private static final String TEST_GROUP_UUID = "test-group-uuid";
+//    private static final Long TEST_DEVICE_ID = 1L;
+//
+//    @Mock
+//    private GroupGateway groupGateway;
+//
+//    @InjectMocks
+//    private GroupController groupController;
+//
+//    // ========== 添加群组相关测试 ==========
+//    @Test
+//    void addGroup_Success() {
+//        // 准备测试数据
+//        GroupAddParams request = new GroupAddParams();
+//        request.setGroupName(TEST_GROUP_NAME);
+//        request.setUserId(TEST_USER_ID);
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.addGroup(request)).thenReturn(true);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.addGroup(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).addGroup(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void addGroup_Failed() {
+//        // 准备测试数据
+//        GroupAddParams request = new GroupAddParams();
+//        request.setGroupName(TEST_GROUP_NAME);
+//        request.setUserId(TEST_USER_ID);
+//
+//        // 模拟Gateway行为 - 返回失败
+//        when(groupGateway.addGroup(request)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.addGroup(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).addGroup(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void addGroup_ThrowsException() {
+//        // 准备测试数据
+//        GroupAddParams request = new GroupAddParams();
+//        request.setGroupName(TEST_GROUP_NAME);
+//        request.setUserId(TEST_USER_ID);
+//
+//        // 模拟Gateway行为 - 抛出异常
+//        when(groupGateway.addGroup(request)).thenThrow(new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage()));
+//
+//        // 验证异常抛出
+//        assertThrows(BizException.class, () -> groupController.addGroup(request));
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).addGroup(request);
+//    }
+//
+//    // ========== 删除群组相关测试 ==========
+//    @Test
+//    void deleteGroup_Success() {
+//        // 准备测试数据
+//        Long groupId = TEST_GROUP_ID;
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.deleteGroup(groupId)).thenReturn(true);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.deleteGroup(groupId);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).deleteGroup(groupId);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void deleteGroup_Failed() {
+//        // 准备测试数据
+//        Long groupId = TEST_GROUP_ID;
+//
+//        // 模拟Gateway行为 - 返回失败
+//        when(groupGateway.deleteGroup(groupId)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.deleteGroup(groupId);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).deleteGroup(groupId);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void deleteGroup_ThrowsException() {
+//        // 准备测试数据
+//        Long groupId = TEST_GROUP_ID;
+//
+//        // 模拟Gateway行为 - 抛出异常
+//        when(groupGateway.deleteGroup(groupId)).thenThrow(new BizException(ErrorEnum.GROUP_IS_NOT_EXIST.getErrorCode(), ErrorEnum.GROUP_IS_NOT_EXIST.getErrorMessage()));
+//
+//        // 验证异常抛出
+//        assertThrows(BizException.class, () -> groupController.deleteGroup(groupId));
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).deleteGroup(groupId);
+//    }
+//
+//    // ========== 更新群组相关测试 ==========
+//    @Test
+//    void updateGroup_Success() {
+//        // 准备测试数据
+//        GroupUpdateParams params = new GroupUpdateParams();
+//        params.setGroupUuid(TEST_GROUP_UUID);
+//        params.setGroupName(TEST_GROUP_NAME);
+//        params.setLength(new BigDecimal("100"));
+//        params.setWidth(new BigDecimal("50"));
+//        params.setNorthAngle(new BigDecimal("45"));
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.updateGroup(params)).thenReturn(true);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.updateGroup(params);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).updateGroup(params);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void updateGroup_Failed() {
+//        // 准备测试数据
+//        GroupUpdateParams params = new GroupUpdateParams();
+//        params.setGroupUuid(TEST_GROUP_UUID);
+//        params.setGroupName(TEST_GROUP_NAME);
+//        params.setLength(new BigDecimal("100"));
+//        params.setWidth(new BigDecimal("50"));
+//        params.setNorthAngle(new BigDecimal("45"));
+//
+//        // 模拟Gateway行为 - 返回失败
+//        when(groupGateway.updateGroup(params)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.updateGroup(params);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).updateGroup(params);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    // ========== 查询群组列表相关测试 ==========
+//    @Test
+//    void groupList_Success() {
+//        // 准备测试数据
+//        Long userId = TEST_USER_ID;
+//
+//        List<GroupDTO> expectedGroups = new ArrayList<>();
+//        GroupDTO group = new GroupDTO();
+//        group.setDevGroupId(TEST_GROUP_ID);
+//        group.setGroupUuid(TEST_GROUP_UUID);
+//        group.setGroupName(TEST_GROUP_NAME);
+//        group.setTotalDevice(5);
+//        group.setOnlineDevice(3);
+//        group.setWarningDevice(1);
+//        expectedGroups.add(group);
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.queryGroupList(userId)).thenReturn(expectedGroups);
+//
+//        // 执行测试
+//        ApiResult<List<GroupDTO>> result = groupController.GroupList(userId);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).queryGroupList(userId);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(expectedGroups, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void groupList_EmptyResult() {
+//        // 准备测试数据
+//        Long userId = TEST_USER_ID;
+//
+//        // 模拟Gateway行为 - 返回空列表
+//        when(groupGateway.queryGroupList(userId)).thenReturn(Collections.emptyList());
+//
+//        // 执行测试
+//        ApiResult<List<GroupDTO>> result = groupController.GroupList(userId);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).queryGroupList(userId);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(Collections.emptyList(), ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void groupList_NullUserId() {
+//        // 模拟Gateway行为 - 返回空列表
+//        when(groupGateway.queryGroupList(null)).thenReturn(Collections.emptyList());
+//
+//        // 执行测试
+//        ApiResult<List<GroupDTO>> result = groupController.GroupList(null);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).queryGroupList(null);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(Collections.emptyList(), ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    // ========== 查询群组设备列表相关测试 ==========
+//    @Test
+//    void queryGroupById_Success() {
+//        // 准备测试数据
+//        Long groupId = TEST_GROUP_ID;
+//
+//        List<DeviceDTO> expectedDevices = new ArrayList<>();
+//        DeviceDTO device = new DeviceDTO();
+//        device.setDevId(TEST_DEVICE_ID);
+//        device.setDevName("测试设备");
+//        expectedDevices.add(device);
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.queryGroupDeviceInfoById(groupId)).thenReturn(expectedDevices);
+//
+//        // 执行测试
+//        ApiResult<List<DeviceDTO>> result = groupController.queryGroupById(groupId);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).queryGroupDeviceInfoById(groupId);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(expectedDevices, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void queryGroupById_EmptyResult() {
+//        // 准备测试数据
+//        Long groupId = TEST_GROUP_ID;
+//
+//        // 模拟Gateway行为 - 返回空列表
+//        when(groupGateway.queryGroupDeviceInfoById(groupId)).thenReturn(Collections.emptyList());
+//
+//        // 执行测试
+//        ApiResult<List<DeviceDTO>> result = groupController.queryGroupById(groupId);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).queryGroupDeviceInfoById(groupId);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(Collections.emptyList(), ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    // ========== 添加设备到群组相关测试 ==========
+//    @Test
+//    void addDeviceToGroup_Success() {
+//        // 准备测试数据
+//        AddDeviceToGroupParams request = new AddDeviceToGroupParams();
+//        request.setDevId(TEST_DEVICE_ID);
+//        request.setGroupId(TEST_GROUP_ID);
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.addDeviceToGroup(request)).thenReturn(true);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.addDeviceToGroup(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).addDeviceToGroup(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void addDeviceToGroup_Failed() {
+//        // 准备测试数据
+//        AddDeviceToGroupParams request = new AddDeviceToGroupParams();
+//        request.setDevId(TEST_DEVICE_ID);
+//        request.setGroupId(TEST_GROUP_ID);
+//
+//        // 模拟Gateway行为 - 返回失败
+//        when(groupGateway.addDeviceToGroup(request)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.addDeviceToGroup(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).addDeviceToGroup(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void addDeviceToGroup_ThrowsException() {
+//        // 准备测试数据
+//        AddDeviceToGroupParams request = new AddDeviceToGroupParams();
+//        request.setDevId(TEST_DEVICE_ID);
+//        request.setGroupId(TEST_GROUP_ID);
+//
+//        // 模拟Gateway行为 - 抛出异常
+//        when(groupGateway.addDeviceToGroup(request)).thenThrow(new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(), ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage()));
+//
+//        // 验证异常抛出
+//        assertThrows(BizException.class, () -> groupController.addDeviceToGroup(request));
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).addDeviceToGroup(request);
+//    }
+//
+//    // ========== 从群组删除设备相关测试 ==========
+//    @Test
+//    void deleteDeviceFromGroup_Success() {
+//        // 准备测试数据
+//        DeleteDeviceFromGroupParams request = new DeleteDeviceFromGroupParams();
+//        request.setDevId(TEST_DEVICE_ID);
+//        request.setGroupId(TEST_GROUP_ID);
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.deleteDeviceFromGroup(request)).thenReturn(true);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.deleteDeviceFromGroup(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).deleteDeviceFromGroup(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void deleteDeviceFromGroup_Failed() {
+//        // 准备测试数据
+//        DeleteDeviceFromGroupParams request = new DeleteDeviceFromGroupParams();
+//        request.setDevId(TEST_DEVICE_ID);
+//        request.setGroupId(TEST_GROUP_ID);
+//
+//        // 模拟Gateway行为 - 返回失败
+//        when(groupGateway.deleteDeviceFromGroup(request)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.deleteDeviceFromGroup(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).deleteDeviceFromGroup(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    // ========== 分享群组相关测试 ==========
+//    @Test
+//    void shareGroup_Success() {
+//        // 准备测试数据
+//        ShareGroupParams request = new ShareGroupParams();
+//        request.setGroupUuid(TEST_GROUP_UUID);
+//        request.setSharerUserId(TEST_USER_ID);
+//        request.setSharerPhone("13800138000");
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.shareGroup(request)).thenReturn(true);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.shareGroup(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).shareGroup(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void shareGroup_Failed() {
+//        // 准备测试数据
+//        ShareGroupParams request = new ShareGroupParams();
+//        request.setGroupUuid(TEST_GROUP_UUID);
+//        request.setSharerUserId(TEST_USER_ID);
+//        request.setSharerPhone("13800138000");
+//
+//        // 模拟Gateway行为 - 返回失败
+//        when(groupGateway.shareGroup(request)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.shareGroup(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).shareGroup(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void shareGroup_ThrowsException() {
+//        // 准备测试数据
+//        ShareGroupParams request = new ShareGroupParams();
+//        request.setGroupUuid(TEST_GROUP_UUID);
+//        request.setSharerUserId(TEST_USER_ID);
+//        request.setSharerPhone("13800138000");
+//
+//        // 模拟Gateway行为 - 抛出异常
+//        when(groupGateway.shareGroup(request)).thenThrow(new BizException(ErrorEnum.GROUP_IS_NOT_EXIST.getErrorCode(), ErrorEnum.GROUP_IS_NOT_EXIST.getErrorMessage()));
+//
+//        // 验证异常抛出
+//        assertThrows(BizException.class, () -> groupController.shareGroup(request));
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).shareGroup(request);
+//    }
+//
+//    // ========== 群组分享确认相关测试 ==========
+//    @Test
+//    void groupShareConfirm_Success() {
+//        // 准备测试数据
+//        GroupShareConfirmParams request = new GroupShareConfirmParams();
+//        request.setSharedUserId(TEST_USER_ID);
+//        request.setSharedPhone("13800138000");
+//        request.setUuid(TEST_GROUP_UUID);
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.groupShareConfirm(request)).thenReturn(true);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.GroupShareConfirm(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).groupShareConfirm(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void groupShareConfirm_Failed() {
+//        // 准备测试数据
+//        GroupShareConfirmParams request = new GroupShareConfirmParams();
+//        request.setSharedUserId(TEST_USER_ID);
+//        request.setSharedPhone("13800138000");
+//        request.setUuid(TEST_GROUP_UUID);
+//
+//        // 模拟Gateway行为 - 返回失败
+//        when(groupGateway.groupShareConfirm(request)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.GroupShareConfirm(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).groupShareConfirm(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void groupShareConfirm_ThrowsException() {
+//        // 准备测试数据
+//        GroupShareConfirmParams request = new GroupShareConfirmParams();
+//        request.setSharedUserId(TEST_USER_ID);
+//        request.setSharedPhone("13800138000");
+//        request.setUuid(TEST_GROUP_UUID);
+//
+//        // 模拟Gateway行为 - 抛出异常
+//        when(groupGateway.groupShareConfirm(request)).thenThrow(new BizException(ErrorEnum.SHARE_IS_EXPIRED.getErrorCode(), ErrorEnum.SHARE_IS_EXPIRED.getErrorMessage()));
+//
+//        // 验证异常抛出
+//        assertThrows(BizException.class, () -> groupController.GroupShareConfirm(request));
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).groupShareConfirm(request);
+//    }
+//
+//    @Test
+//    void groupShareConfirm_NullUserId() {
+//        // 准备测试数据
+//        GroupShareConfirmParams request = new GroupShareConfirmParams();
+//        request.setSharedUserId(null);
+//        request.setSharedPhone("13800138000");
+//        request.setUuid(TEST_GROUP_UUID);
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.groupShareConfirm(request)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.GroupShareConfirm(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).groupShareConfirm(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    // ========== 群组分享处理相关测试 ==========
+//    @Test
+//    void groupShareHandle_Success() {
+//        // 准备测试数据
+//        GroupShareHandleParams request = new GroupShareHandleParams();
+//        request.setState(1); // 接受状态
+//        request.setUuid(TEST_GROUP_UUID);
+//
+//        // 模拟Gateway行为
+//        when(groupGateway.groupShareHandle(request)).thenReturn(true);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.groupShareHandle(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).groupShareHandle(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(true, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void groupShareHandle_Failed() {
+//        // 准备测试数据
+//        GroupShareHandleParams request = new GroupShareHandleParams();
+//        request.setState(2); // 拒绝状态
+//        request.setUuid(TEST_GROUP_UUID);
+//
+//        // 模拟Gateway行为 - 返回失败
+//        when(groupGateway.groupShareHandle(request)).thenReturn(false);
+//
+//        // 执行测试
+//        ApiResult<Boolean> result = groupController.groupShareHandle(request);
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).groupShareHandle(request);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(false, ReflectionTestUtils.getField(result, "data"));
+//    }
+//
+//    @Test
+//    void groupShareHandle_ThrowsException() {
+//        // 准备测试数据
+//        GroupShareHandleParams request = new GroupShareHandleParams();
+//        request.setState(2); // 拒绝状态
+//        request.setUuid(TEST_GROUP_UUID);
+//
+//        // 模拟Gateway行为 - 抛出异常
+//        when(groupGateway.groupShareHandle(request)).thenThrow(new BizException(ErrorEnum.SHARE_GROUP_IS_NOT_EXIST.getErrorCode(), ErrorEnum.SHARE_GROUP_IS_NOT_EXIST.getErrorMessage()));
+//
+//        // 验证异常抛出
+//        assertThrows(BizException.class, () -> groupController.groupShareHandle(request));
+//
+//        // 验证交互
+//        verify(groupGateway, times(1)).groupShareHandle(request);
+//    }
+//}

+ 87 - 87
portal-service-application/src/test/java/com/hfln/portal/application/controller/wap/HomeControllerTest.java

@@ -1,87 +1,87 @@
-package com.hfln.portal.application.controller.wap;
-
-import cn.hfln.framework.dto.ApiResult;
-import cn.hfln.framework.extension.BizException;
-import com.hfln.portal.common.dto.data.home.HomeInfoDTO;
-import com.hfln.portal.domain.gateway.DeviceGateway;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.springframework.test.util.ReflectionTestUtils;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-class HomeControllerTest {
-
-    private static final Long TEST_USER_ID = 1L;
-    private static final String SUCCESS_CODE = "200";
-
-    @Mock
-    private DeviceGateway deviceGateway;
-
-    @InjectMocks
-    private HomeController homeController;
-
-    @BeforeEach
-    void setUp() {
-        MockitoAnnotations.initMocks(this);
-    }
-
-    @Test
-    void homeInfo_Success() {
-        // 准备测试数据
-        HomeInfoDTO expectedHomeInfo = new HomeInfoDTO();
-        expectedHomeInfo.setGroupNum(2);
-        expectedHomeInfo.setShareNum(3);
-        
-        // 模拟DeviceGateway的行为
-        when(deviceGateway.queryHomeInfo(TEST_USER_ID)).thenReturn(expectedHomeInfo);
-        
-        // 执行测试
-        ApiResult<HomeInfoDTO> result = homeController.homeInfo(TEST_USER_ID);
-        
-        // 验证交互
-        verify(deviceGateway, times(1)).queryHomeInfo(TEST_USER_ID);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(expectedHomeInfo, result.getData());
-    }
-
-    @Test
-    void homeInfo_EmptyResult() {
-        // 模拟DeviceGateway返回空结果
-        when(deviceGateway.queryHomeInfo(TEST_USER_ID)).thenReturn(null);
-        
-        // 执行测试
-        ApiResult<HomeInfoDTO> result = homeController.homeInfo(TEST_USER_ID);
-        
-        // 验证交互
-        verify(deviceGateway, times(1)).queryHomeInfo(TEST_USER_ID);
-        
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertNull(result.getData());
-    }
-
-    @Test
-    void homeInfo_Exception() {
-        // 模拟DeviceGateway抛出异常
-        when(deviceGateway.queryHomeInfo(TEST_USER_ID))
-            .thenThrow(new BizException("500", "查询首页信息失败"));
-        
-        // 执行测试 - 验证异常被正确传播
-        BizException exception = assertThrows(BizException.class, 
-            () -> homeController.homeInfo(TEST_USER_ID));
-        
-        // 验证交互
-        verify(deviceGateway, times(1)).queryHomeInfo(TEST_USER_ID);
-        
-        // 验证异常信息
-        assertEquals("500", exception.getErrCode());
-        assertEquals("查询首页信息失败", exception.getMessage());
-    }
-}
+//package com.hfln.portal.application.controller.wap;
+//
+//import cn.hfln.framework.dto.ApiResult;
+//import cn.hfln.framework.extension.BizException;
+//import com.hfln.portal.common.dto.data.home.HomeInfoDTO;
+//import com.hfln.portal.domain.gateway.DeviceGateway;
+//import org.junit.jupiter.api.BeforeEach;
+//import org.junit.jupiter.api.Test;
+//import org.mockito.InjectMocks;
+//import org.mockito.Mock;
+//import org.mockito.MockitoAnnotations;
+//import org.springframework.test.util.ReflectionTestUtils;
+//
+//import static org.junit.jupiter.api.Assertions.*;
+//import static org.mockito.Mockito.*;
+//
+//class HomeControllerTest {
+//
+//    private static final Long TEST_USER_ID = 1L;
+//    private static final String SUCCESS_CODE = "200";
+//
+//    @Mock
+//    private DeviceGateway deviceGateway;
+//
+//    @InjectMocks
+//    private HomeController homeController;
+//
+//    @BeforeEach
+//    void setUp() {
+//        MockitoAnnotations.initMocks(this);
+//    }
+//
+//    @Test
+//    void homeInfo_Success() {
+//        // 准备测试数据
+//        HomeInfoDTO expectedHomeInfo = new HomeInfoDTO();
+//        expectedHomeInfo.setGroupNum(2);
+//        expectedHomeInfo.setShareNum(3);
+//
+//        // 模拟DeviceGateway的行为
+//        when(deviceGateway.queryHomeInfo(TEST_USER_ID)).thenReturn(expectedHomeInfo);
+//
+//        // 执行测试
+//        ApiResult<HomeInfoDTO> result = homeController.homeInfo(TEST_USER_ID);
+//
+//        // 验证交互
+//        verify(deviceGateway, times(1)).queryHomeInfo(TEST_USER_ID);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(expectedHomeInfo, result.getData());
+//    }
+//
+//    @Test
+//    void homeInfo_EmptyResult() {
+//        // 模拟DeviceGateway返回空结果
+//        when(deviceGateway.queryHomeInfo(TEST_USER_ID)).thenReturn(null);
+//
+//        // 执行测试
+//        ApiResult<HomeInfoDTO> result = homeController.homeInfo(TEST_USER_ID);
+//
+//        // 验证交互
+//        verify(deviceGateway, times(1)).queryHomeInfo(TEST_USER_ID);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertNull(result.getData());
+//    }
+//
+//    @Test
+//    void homeInfo_Exception() {
+//        // 模拟DeviceGateway抛出异常
+//        when(deviceGateway.queryHomeInfo(TEST_USER_ID))
+//            .thenThrow(new BizException("500", "查询首页信息失败"));
+//
+//        // 执行测试 - 验证异常被正确传播
+//        BizException exception = assertThrows(BizException.class,
+//            () -> homeController.homeInfo(TEST_USER_ID));
+//
+//        // 验证交互
+//        verify(deviceGateway, times(1)).queryHomeInfo(TEST_USER_ID);
+//
+//        // 验证异常信息
+//        assertEquals("500", exception.getErrCode());
+//        assertEquals("查询首页信息失败", exception.getMessage());
+//    }
+//}

+ 137 - 137
portal-service-application/src/test/java/com/hfln/portal/application/controller/wap/WechatControllerTest.java

@@ -1,137 +1,137 @@
-package com.hfln.portal.application.controller.wap;
-
-import cn.hfln.framework.dto.ApiResult;
-import cn.hfln.framework.extension.BizException;
-import com.hfln.portal.domain.exception.ErrorEnum;
-import com.hfln.portal.domain.gateway.UserGateway;
-import me.chanjar.weixin.mp.api.WxMpService;
-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 org.springframework.mock.web.MockHttpServletResponse;
-import org.springframework.test.util.ReflectionTestUtils;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-@ExtendWith(MockitoExtension.class)
-class WechatControllerTest {
-
-    private static final String SUCCESS_CODE = "200";
-    private static final String TEST_AUTH_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=test";
-    private static final String TEST_WELCOME_URL = "/welcome.html?nickname=testUser&avatar=testAvatar";
-    private static final String TEST_CODE = "test_code";
-
-    @Mock
-    private UserGateway userGateway;
-
-    @InjectMocks
-    private WechatController wechatController;
-
-    @Test
-    void authUrl_Success() throws IOException {
-        // 准备测试数据
-        MockHttpServletResponse response = new MockHttpServletResponse();
-        when(userGateway.authUrl()).thenReturn(TEST_AUTH_URL);
-
-        // 执行测试
-        ApiResult<Void> result = wechatController.authUrl(response);
-
-        // 验证交互
-        verify(userGateway, times(1)).authUrl();
-
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(TEST_AUTH_URL, response.getRedirectedUrl());
-    }
-
-    @Test
-    void authUrl_Exception() throws IOException {
-        // 准备测试数据
-        MockHttpServletResponse response = new MockHttpServletResponse();
-        when(userGateway.authUrl()).thenThrow(new RuntimeException("Failed to get auth URL"));
-
-        // 执行测试并验证异常
-        assertThrows(RuntimeException.class, () -> wechatController.authUrl(response));
-
-        // 验证交互
-        verify(userGateway, times(1)).authUrl();
-    }
-
-    @Test
-    void callback_Success() throws IOException {
-        // 准备测试数据
-        MockHttpServletResponse response = new MockHttpServletResponse();
-        when(userGateway.callback(TEST_CODE)).thenReturn(TEST_WELCOME_URL);
-
-        // 执行测试
-        ApiResult<Void> result = wechatController.callback(TEST_CODE, "state123", response);
-
-        // 验证交互
-        verify(userGateway, times(1)).callback(TEST_CODE);
-
-        // 验证结果
-        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
-        assertEquals(TEST_WELCOME_URL, response.getRedirectedUrl());
-    }
-
-    @Test
-    void callback_EmptyCode() throws IOException {
-        // 准备测试数据
-        MockHttpServletResponse response = new MockHttpServletResponse();
-        when(userGateway.callback("")).thenThrow(new BizException(
-            ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorCode(),
-            ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorMessage()
-        ));
-
-        // 执行测试并验证异常
-        BizException exception = assertThrows(BizException.class, 
-            () -> wechatController.callback("", "state123", response));
-
-        // 验证异常内容
-        assertEquals(ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorCode(), exception.getErrCode());
-        assertEquals(ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorMessage(), exception.getMessage());
-
-        // 验证交互
-        verify(userGateway, times(1)).callback("");
-    }
-
-    @Test
-    void callback_NullCode() throws IOException {
-        // 准备测试数据
-        MockHttpServletResponse response = new MockHttpServletResponse();
-        when(userGateway.callback(null)).thenThrow(new BizException(
-            ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorCode(),
-            ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorMessage()
-        ));
-
-        // 执行测试并验证异常
-        BizException exception = assertThrows(BizException.class, 
-            () -> wechatController.callback(null, "state123", response));
-
-        // 验证异常内容
-        assertEquals(ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorCode(), exception.getErrCode());
-        assertEquals(ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorMessage(), exception.getMessage());
-
-        // 验证交互
-        verify(userGateway, times(1)).callback(null);
-    }
-
-    @Test
-    void callback_Exception() throws IOException {
-        // 准备测试数据
-        MockHttpServletResponse response = new MockHttpServletResponse();
-        when(userGateway.callback(TEST_CODE)).thenThrow(new RuntimeException("Failed to process callback"));
-
-        // 执行测试并验证异常
-        assertThrows(RuntimeException.class, () -> wechatController.callback(TEST_CODE, "state123", response));
-
-        // 验证交互
-        verify(userGateway, times(1)).callback(TEST_CODE);
-    }
-}
+//package com.hfln.portal.application.controller.wap;
+//
+//import cn.hfln.framework.dto.ApiResult;
+//import cn.hfln.framework.extension.BizException;
+//import com.hfln.portal.domain.exception.ErrorEnum;
+//import com.hfln.portal.domain.gateway.UserGateway;
+//import me.chanjar.weixin.mp.api.WxMpService;
+//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 org.springframework.mock.web.MockHttpServletResponse;
+//import org.springframework.test.util.ReflectionTestUtils;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//
+//import static org.junit.jupiter.api.Assertions.*;
+//import static org.mockito.Mockito.*;
+//
+//@ExtendWith(MockitoExtension.class)
+//class WechatControllerTest {
+//
+//    private static final String SUCCESS_CODE = "200";
+//    private static final String TEST_AUTH_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=test";
+//    private static final String TEST_WELCOME_URL = "/welcome.html?nickname=testUser&avatar=testAvatar";
+//    private static final String TEST_CODE = "test_code";
+//
+//    @Mock
+//    private UserGateway userGateway;
+//
+//    @InjectMocks
+//    private WechatController wechatController;
+//
+//    @Test
+//    void authUrl_Success() throws IOException {
+//        // 准备测试数据
+//        MockHttpServletResponse response = new MockHttpServletResponse();
+//        when(userGateway.authUrl()).thenReturn(TEST_AUTH_URL);
+//
+//        // 执行测试
+//        ApiResult<Void> result = wechatController.authUrl(response);
+//
+//        // 验证交互
+//        verify(userGateway, times(1)).authUrl();
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(TEST_AUTH_URL, response.getRedirectedUrl());
+//    }
+//
+//    @Test
+//    void authUrl_Exception() throws IOException {
+//        // 准备测试数据
+//        MockHttpServletResponse response = new MockHttpServletResponse();
+//        when(userGateway.authUrl()).thenThrow(new RuntimeException("Failed to get auth URL"));
+//
+//        // 执行测试并验证异常
+//        assertThrows(RuntimeException.class, () -> wechatController.authUrl(response));
+//
+//        // 验证交互
+//        verify(userGateway, times(1)).authUrl();
+//    }
+//
+//    @Test
+//    void callback_Success() throws IOException {
+//        // 准备测试数据
+//        MockHttpServletResponse response = new MockHttpServletResponse();
+//        when(userGateway.callback(TEST_CODE)).thenReturn(TEST_WELCOME_URL);
+//
+//        // 执行测试
+//        ApiResult<Void> result = wechatController.callback(TEST_CODE, "state123", response);
+//
+//        // 验证交互
+//        verify(userGateway, times(1)).callback(TEST_CODE);
+//
+//        // 验证结果
+//        assertEquals(SUCCESS_CODE, ReflectionTestUtils.getField(result, "code"));
+//        assertEquals(TEST_WELCOME_URL, response.getRedirectedUrl());
+//    }
+//
+//    @Test
+//    void callback_EmptyCode() throws IOException {
+//        // 准备测试数据
+//        MockHttpServletResponse response = new MockHttpServletResponse();
+//        when(userGateway.callback("")).thenThrow(new BizException(
+//            ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorCode(),
+//            ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorMessage()
+//        ));
+//
+//        // 执行测试并验证异常
+//        BizException exception = assertThrows(BizException.class,
+//            () -> wechatController.callback("", "state123", response));
+//
+//        // 验证异常内容
+//        assertEquals(ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorCode(), exception.getErrCode());
+//        assertEquals(ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorMessage(), exception.getMessage());
+//
+//        // 验证交互
+//        verify(userGateway, times(1)).callback("");
+//    }
+//
+//    @Test
+//    void callback_NullCode() throws IOException {
+//        // 准备测试数据
+//        MockHttpServletResponse response = new MockHttpServletResponse();
+//        when(userGateway.callback(null)).thenThrow(new BizException(
+//            ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorCode(),
+//            ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorMessage()
+//        ));
+//
+//        // 执行测试并验证异常
+//        BizException exception = assertThrows(BizException.class,
+//            () -> wechatController.callback(null, "state123", response));
+//
+//        // 验证异常内容
+//        assertEquals(ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorCode(), exception.getErrCode());
+//        assertEquals(ErrorEnum.WECHAT_CODE_NOT_EXIST.getErrorMessage(), exception.getMessage());
+//
+//        // 验证交互
+//        verify(userGateway, times(1)).callback(null);
+//    }
+//
+//    @Test
+//    void callback_Exception() throws IOException {
+//        // 准备测试数据
+//        MockHttpServletResponse response = new MockHttpServletResponse();
+//        when(userGateway.callback(TEST_CODE)).thenThrow(new RuntimeException("Failed to process callback"));
+//
+//        // 执行测试并验证异常
+//        assertThrows(RuntimeException.class, () -> wechatController.callback(TEST_CODE, "state123", response));
+//
+//        // 验证交互
+//        verify(userGateway, times(1)).callback(TEST_CODE);
+//    }
+//}