package com.tourguide.modules.user.service;
|
|
import com.tourguide.modules.user.dto.MiniProfileUpdateRequest;
|
import com.tourguide.modules.user.dto.MiniRealNameUpdateRequest;
|
import com.tourguide.modules.user.dto.MiniUserResponse;
|
import com.tourguide.modules.user.entity.MiniUser;
|
import com.tourguide.modules.user.mapper.MiniUserMapper;
|
import com.tourguide.modules.order.mapper.TourOrderMapper;
|
import com.tourguide.modules.review.mapper.OrderReviewMapper;
|
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.Test;
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.mockito.Mockito.mock;
|
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
class MiniUserServiceProfileTest {
|
private MiniUserMapper userMapper;
|
private TourOrderMapper orderMapper;
|
private OrderReviewMapper reviewMapper;
|
private MiniUserService userService;
|
private MiniUser user;
|
|
@BeforeEach
|
void setUp() {
|
userMapper = mock(MiniUserMapper.class);
|
orderMapper = mock(TourOrderMapper.class);
|
reviewMapper = mock(OrderReviewMapper.class);
|
userService = new MiniUserService(userMapper, orderMapper, reviewMapper);
|
user = new MiniUser();
|
user.setId(1L);
|
user.setUsername("wx_user");
|
user.setNickname("微信用户");
|
user.setMobile("13800138000");
|
user.setStatus(1);
|
when(userMapper.selectById(1L)).thenReturn(user);
|
when(userMapper.selectCount(any())).thenReturn(0L);
|
}
|
|
@Test
|
void shouldUpdateNicknameWithoutChangingWechatMobile() {
|
MiniProfileUpdateRequest request = new MiniProfileUpdateRequest();
|
request.setNickname(" 新昵称 ");
|
|
MiniUserResponse response = userService.updateProfile(1L, request);
|
|
assertThat(response.getNickname()).isEqualTo("新昵称");
|
assertThat(response.getMobile()).isEqualTo("13800138000");
|
verify(userMapper).updateById(user);
|
}
|
|
@Test
|
void shouldTreatNameAndIdCardAsVerified() {
|
MiniRealNameUpdateRequest request = new MiniRealNameUpdateRequest();
|
request.setRealName(" 张三 ");
|
request.setIdCardNo("11010519491231002x");
|
|
MiniUserResponse response = userService.updateRealName(1L, request);
|
|
assertThat(response.getRealName()).isEqualTo("张三");
|
assertThat(response.getIdCardNoMasked()).isEqualTo("110105********002X");
|
assertThat(response.isRealNameVerified()).isTrue();
|
verify(userMapper).updateById(user);
|
}
|
|
@Test
|
void shouldUpdateAvatarPath() {
|
MiniUserResponse response = userService.updateAvatar(1L, "/uploads/avatars/avatar.jpg");
|
|
assertThat(response.getAvatar()).isEqualTo("/uploads/avatars/avatar.jpg");
|
verify(userMapper).updateById(user);
|
}
|
}
|