| | |
| | | package com.ruoyi.chargingPile.service.impl; |
| | | |
| | | import com.ruoyi.chargingPile.api.model.Partner; |
| | | import com.ruoyi.chargingPile.api.domain.SiteMenu; |
| | | import com.ruoyi.chargingPile.mapper.PartnerMapper; |
| | | import com.ruoyi.chargingPile.service.TSiteMenuService; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.other.api.feignClient.RoleSiteClient; |
| | | import com.ruoyi.other.api.feignClient.UserSiteClient; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserRoleClient; |
| | | import com.ruoyi.system.api.model.LoginUser; |
| | | import com.ruoyi.system.api.model.SysUserRoleVo; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import org.junit.jupiter.api.Test; |
| | |
| | | import org.mockito.ArgumentCaptor; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Arrays; |
| | | import java.util.HashSet; |
| | | import java.util.Set; |
| | | |
| | | import static org.junit.jupiter.api.Assertions.assertTrue; |
| | | import static org.junit.jupiter.api.Assertions.assertEquals; |
| | | import static org.junit.jupiter.api.Assertions.assertNull; |
| | | import static org.mockito.Mockito.mock; |
| | | import static org.mockito.Mockito.never; |
| | | import static org.mockito.Mockito.verify; |
| | | import static org.mockito.Mockito.when; |
| | | import static org.mockito.ArgumentMatchers.isNull; |
| | | import static org.mockito.ArgumentMatchers.any; |
| | | |
| | | class PartnerServiceImplTest { |
| | | |
| | | @Test |
| | | void editingPartnerDoesNotReplaceExistingLoginPasswordHash() { |
| | | void editingPartnerExcludesPasswordFromSystemUserUpdate() { |
| | | PartnerServiceImpl service = new PartnerServiceImpl(); |
| | | Partner partner = new Partner(); |
| | | partner.setAccount("partner-user"); |
| | |
| | | partner.setRoleId(9); |
| | | SysUser user = new SysUser(); |
| | | user.setPassword("$2a$10$existing-bcrypt-hash"); |
| | | user.setPassWordUpdate(new java.util.Date()); |
| | | |
| | | service.prepareExistingUserForUpdate(user, partner); |
| | | |
| | | assertEquals("$2a$10$existing-bcrypt-hash", user.getPassword()); |
| | | assertNull(user.getPassword()); |
| | | assertNull(user.getPassWordUpdate()); |
| | | assertEquals("partner-user", user.getUserName()); |
| | | assertEquals(Long.valueOf(9), user.getRoleId()); |
| | | } |
| | |
| | | assertTrue(wrapper.getSqlSet().contains("electricity_share_ratio")); |
| | | assertTrue(wrapper.getSqlSet().contains("service_share_ratio")); |
| | | } |
| | | |
| | | @Test |
| | | void partnerSitePermissionIncludesCurrentUsersDirectAndAllRoleSites() { |
| | | PartnerServiceImpl service = new PartnerServiceImpl(); |
| | | PartnerMapper mapper = mock(PartnerMapper.class); |
| | | UserSiteClient userSiteClient = mock(UserSiteClient.class); |
| | | RoleSiteClient roleSiteClient = mock(RoleSiteClient.class); |
| | | SysUserRoleClient userRoleClient = mock(SysUserRoleClient.class); |
| | | TokenService tokenService = mock(TokenService.class); |
| | | TSiteMenuService siteMenuService = mock(TSiteMenuService.class); |
| | | ReflectionTestUtils.setField(service, "baseMapper", mapper); |
| | | ReflectionTestUtils.setField(service, "userSiteClient", userSiteClient); |
| | | ReflectionTestUtils.setField(service, "roleSiteClient", roleSiteClient); |
| | | ReflectionTestUtils.setField(service, "userRoleClient", userRoleClient); |
| | | ReflectionTestUtils.setField(service, "tokenService", tokenService); |
| | | ReflectionTestUtils.setField(service, "siteMenuService", siteMenuService); |
| | | |
| | | LoginUser loginUser = new LoginUser(); |
| | | loginUser.setUserid(100L); |
| | | SysUserRoleVo firstRole = new SysUserRoleVo(); |
| | | firstRole.setRoleId(10L); |
| | | SysUserRoleVo secondRole = new SysUserRoleVo(); |
| | | secondRole.setRoleId(20L); |
| | | when(tokenService.getLoginUser()).thenReturn(loginUser); |
| | | when(siteMenuService.getOne(any())).thenReturn(null); |
| | | when(userSiteClient.getSiteIds(100L)).thenReturn(R.ok(Arrays.asList(1, 2))); |
| | | when(userRoleClient.getRoleByUserId(100L)).thenReturn(R.ok(Arrays.asList(firstRole, secondRole))); |
| | | when(roleSiteClient.getSiteIds(10L)).thenReturn(R.ok(Arrays.asList(2, 3))); |
| | | when(roleSiteClient.getSiteIds(20L)).thenReturn(R.ok(Arrays.asList(4, 5))); |
| | | |
| | | Set<Integer> result = service.authSite(9, SiteMenu.SITE_LIST); |
| | | |
| | | assertEquals(new HashSet<>(Arrays.asList(1, 2, 3, 4, 5)), result); |
| | | } |
| | | } |