package com.hfln.device.application.mqtt; import cn.hfln.framework.mqtt.template.MqttTemplate; import com.hfln.device.application.service.DebugConfigService; import com.hfln.device.domain.debug.DebugConfig; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.mockito.Mockito.*; class DebugMqttSubscriberTest { @Mock private DebugConfigService debugConfigService; @Mock private MqttTemplate mqttTemplate; @InjectMocks private DebugMqttSubscriber debugMqttSubscriber; @BeforeEach void setUp() { MockitoAnnotations.initMocks(this); } @Test void testHandleSetDebugParam() { String topic = "/dev/123/set_debug_param"; String payload = "{\"param\":1}"; doNothing().when(debugConfigService).updateDebugConfig(anyString(), anyMap()); debugMqttSubscriber.handleSetDebugParam(topic, payload); verify(mqttTemplate, times(1)).send(contains("/das/123/debug_param"), eq(payload)); } @Test void testHandleGetDebugParam() { String topic = "/dev/123/get_debug_param"; DebugConfig config = mock(DebugConfig.class); when(debugConfigService.getDebugConfig(anyString())).thenReturn(config); when(config.getParams()).thenReturn(java.util.Collections.singletonMap("k", "v")); debugMqttSubscriber.handleGetDebugParam(topic); verify(mqttTemplate, times(1)).send(contains("/das/123/debug_param"), anyString()); } }