longz
2026-07-28 79f1a19bb3344de47dff029cf5498d787e223782
ruoyi-service/ruoyi-chargingPile/src/test/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImplTest.java
@@ -1,8 +1,17 @@
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;
@@ -10,19 +19,24 @@
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");
@@ -32,10 +46,12 @@
        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());
    }
@@ -109,4 +125,38 @@
        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);
    }
}