package com.xiaopeng.automaticPilot.util; import com.xiaopeng.api.feignClient.automaticPilot.VmpOpenServiceClient; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class XPUUtilTest { private XPUUtil xpuUtil; @BeforeEach public void setUp() throws Exception { xpuUtil = new XPUUtil(); VmpOpenServiceClient vmpClient = Mockito.mock(VmpOpenServiceClient.class); Map mapping = new HashMap<>(); mapping.put(XPUUtil.XPU_ID_TYPE, "1234567890ABCDEFGHIJKL"); Mockito.when(vmpClient.getVehicleBindInfoByVin(Mockito.anyString(), Mockito.anyList())) .thenReturn(mapping); Field vmpField = XPUUtil.class.getDeclaredField("vmpOpenServiceClient"); vmpField.setAccessible(true); vmpField.set(xpuUtil, vmpClient); Field topicField = XPUUtil.class.getDeclaredField("topicPrefix"); topicField.setAccessible(true); topicField.set(xpuUtil, "Robotaxi/Msg/Xpu"); } @Test public void testBuildTopic() throws Exception { Method buildTopic = XPUUtil.class.getDeclaredMethod("buildTopic", String.class); buildTopic.setAccessible(true); String result = (String) buildTopic.invoke(xpuUtil, "VIN123"); Assertions.assertEquals("Robotaxi/Msg/Xpu/ABCDEFGHIJKL00000000", result); } }