| | |
| | | package com.tcm.training.admin.member.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.MybatisConfiguration; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.tcm.training.admin.common.PageResponse; |
| | | import com.tcm.training.admin.live.mapper.ClinicMapper; |
| | | import com.tcm.training.admin.member.entity.AppUser; |
| | | import com.tcm.training.admin.member.mapper.UserMapper; |
| | | import com.tcm.training.admin.member.row.UserDetailRow; |
| | | import com.tcm.training.admin.member.row.UserListRow; |
| | | import com.tcm.training.admin.member.vo.UserDetailVO; |
| | | import com.tcm.training.admin.member.vo.UserListItemVO; |
| | | import org.apache.ibatis.builder.MapperBuilderAssistant; |
| | | import org.junit.jupiter.api.BeforeAll; |
| | | import org.junit.jupiter.api.Test; |
| | | import org.junit.jupiter.api.extension.ExtendWith; |
| | | import org.mockito.ArgumentCaptor; |
| | | import org.mockito.InjectMocks; |
| | | import org.mockito.Mock; |
| | | import org.mockito.junit.jupiter.MockitoExtension; |
| | |
| | | |
| | | import static org.junit.jupiter.api.Assertions.assertEquals; |
| | | import static org.junit.jupiter.api.Assertions.assertThrows; |
| | | import static org.junit.jupiter.api.Assertions.assertTrue; |
| | | import static org.mockito.ArgumentMatchers.any; |
| | | import static org.mockito.ArgumentMatchers.eq; |
| | | import static org.mockito.ArgumentMatchers.isNull; |
| | | import static org.mockito.Mockito.never; |
| | | import static org.mockito.Mockito.verify; |
| | | import static org.mockito.Mockito.when; |
| | | |
| | | @ExtendWith(MockitoExtension.class) |
| | | class UserAppServiceTest { |
| | | |
| | | @BeforeAll |
| | | static void initLambdaCache() { |
| | | MapperBuilderAssistant assistant = new MapperBuilderAssistant(new MybatisConfiguration(), ""); |
| | | TableInfoHelper.initTableInfo(assistant, AppUser.class); |
| | | } |
| | | |
| | | @Mock |
| | | private UserMapper userMapper; |
| | |
| | | |
| | | assertEquals("会员状态筛选不合法", error.getMessage()); |
| | | } |
| | | |
| | | @Test |
| | | void unbindWechatShouldClearWechatFieldsWithExplicitNullUpdate() { |
| | | AppUser user = new AppUser(); |
| | | user.setId(12L); |
| | | user.setDeleted(0); |
| | | |
| | | UserDetailRow detailRow = new UserDetailRow(); |
| | | detailRow.setId(12L); |
| | | detailRow.setNickname("张医生"); |
| | | |
| | | when(userMapper.selectOne(any())).thenReturn(user); |
| | | when(userMapper.selectUserDetail(12L)).thenReturn(detailRow); |
| | | |
| | | UserDetailVO result = userAppService.unbindWechat(12L); |
| | | |
| | | ArgumentCaptor<LambdaUpdateWrapper<AppUser>> wrapperCaptor = ArgumentCaptor.forClass(LambdaUpdateWrapper.class); |
| | | verify(userMapper).update(isNull(), wrapperCaptor.capture()); |
| | | verify(userMapper, never()).updateById(any(AppUser.class)); |
| | | String sqlSet = wrapperCaptor.getValue().getSqlSet(); |
| | | assertTrue(sqlSet.contains("wechat_openid")); |
| | | assertTrue(sqlSet.contains("wechat_nickname")); |
| | | assertTrue(sqlSet.contains("wechat_avatar")); |
| | | assertTrue(sqlSet.contains("wechat_bound_at")); |
| | | assertTrue(wrapperCaptor.getValue().getParamNameValuePairs().values().stream().allMatch(value -> value == null)); |
| | | assertEquals(Long.valueOf(12L), result.getId()); |
| | | } |
| | | } |