zhouhn
2026-02-23 b8d0dc0a294ba8e07e861b3b78e953d7d5ba480c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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<String, String> 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 testBuildTopicByVin() throws Exception {
        Method buildTopic = XPUUtil.class.getDeclaredMethod("buildTopicByVin", String.class);
        buildTopic.setAccessible(true);
        String result = (String) buildTopic.invoke(xpuUtil, "VIN123");
        Assertions.assertEquals("Robotaxi/Msg/Xpu/ABCDEFGHIJKL00000000", result);
    }
}