longz
2026-07-17 da9b7a52dbc6fcd2173efef90528d8fccc322554
ruoyi-service/ruoyi-chargingPile/src/test/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImplTest.java
@@ -1,11 +1,22 @@
package com.ruoyi.chargingPile.service.impl;
import com.ruoyi.chargingPile.api.model.Partner;
import com.ruoyi.chargingPile.mapper.PartnerMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.junit.jupiter.api.Test;
import org.springframework.test.util.ReflectionTestUtils;
import org.mockito.ArgumentCaptor;
import java.math.BigDecimal;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
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;
class PartnerServiceImplTest {
@@ -22,4 +33,48 @@
        assertTrue(new PartnerServiceImpl().addPartnerParameterCheck(partner).isSuccess());
    }
    @Test
    void venuePartnerFallsBackToPartnerRoleWhenDedicatedRoleIsMissing() {
        PartnerServiceImpl service = new PartnerServiceImpl();
        PartnerMapper mapper = mock(PartnerMapper.class);
        ReflectionTestUtils.setField(service, "baseMapper", mapper);
        when(mapper.getDefaultPartnerRoleId("场地方")).thenReturn(null);
        when(mapper.getDefaultPartnerRoleId("合作商")).thenReturn(7);
        assertEquals(7, service.resolveDefaultRoleId(2));
        verify(mapper).getDefaultPartnerRoleId("场地方");
        verify(mapper).getDefaultPartnerRoleId("合作商");
    }
    @Test
    void serviceProviderUsesDedicatedRoleWhenItExists() {
        PartnerServiceImpl service = new PartnerServiceImpl();
        PartnerMapper mapper = mock(PartnerMapper.class);
        ReflectionTestUtils.setField(service, "baseMapper", mapper);
        when(mapper.getDefaultPartnerRoleId("服务商")).thenReturn(9);
        assertEquals(9, service.resolveDefaultRoleId(3));
        verify(mapper).getDefaultPartnerRoleId("服务商");
        verify(mapper, never()).getDefaultPartnerRoleId("合作商");
    }
    @Test
    void clearingShareRatiosStillProducesExplicitDatabaseUpdate() {
        PartnerServiceImpl service = new PartnerServiceImpl();
        PartnerMapper mapper = mock(PartnerMapper.class);
        ReflectionTestUtils.setField(service, "baseMapper", mapper);
        Partner partner = new Partner();
        partner.setId(8);
        partner.setElectricityShareRatio(null);
        partner.setServiceShareRatio(null);
        service.updateShareRatios(partner);
        ArgumentCaptor<Wrapper<Partner>> wrapperCaptor = ArgumentCaptor.forClass(Wrapper.class);
        verify(mapper).update(isNull(), wrapperCaptor.capture());
        UpdateWrapper<Partner> wrapper = (UpdateWrapper<Partner>) wrapperCaptor.getValue();
        assertTrue(wrapper.getSqlSet().contains("electricity_share_ratio"));
        assertTrue(wrapper.getSqlSet().contains("service_share_ratio"));
    }
}