package com.isu.gaswellwatch; import cn.hutool.json.JSONUtil; import com.isu.gaswellwatch.modbus.data.listener.DynamicRabbitListener; import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.test.context.ActiveProfiles; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.LockSupport; /** * @author ็Ž‹ไป•้พ™ * 2025/2/20 21:13 */ @SpringBootTest @ActiveProfiles("test") public class MIWrpsDecodeTest { private String message10301 = "564D2E53352E31352E34315831/50002/10301/1740200010000/1740200016203/01032C0003000000E0553106120222202500000000800358C0411E27B13F46AACB411ED507408C000042C80000000071B2"; private String message10302 = "564D2E53352E31352E34315831/50002/10302/1740197640001/1740197646124/01038E00000CE9000100010A8C00FA028A0064D5CB2D353531342D583100310000000000000000000000000000000000000000000000000000000041C800010007001900020000070800000000D960FFFEFEFE2300FEFEFFFEEEFF00C41000000E08000007580000022000001C2000001C0000A000BAFEE770002002580000A000FEFE0000000000006B0000000000000046D5"; @Resource(name = "stringRedisTemplate") protected RedisTemplate redisTemplate; @Resource private DynamicRabbitListener dynamicRabbitListener; @Test public void testWrpsDecode() { Message testMessage10301 = Mockito.mock(Message.class); Message testMessage10302 = Mockito.mock(Message.class); MessageProperties testMessageProperties = Mockito.mock(MessageProperties.class); Mockito.doReturn(this.message10301.getBytes()).when(testMessage10301).getBody(); Mockito.doReturn(this.message10302.getBytes()).when(testMessage10302).getBody(); Mockito.doReturn(testMessageProperties).when(testMessage10301).getMessageProperties(); Mockito.doReturn(testMessageProperties).when(testMessage10302).getMessageProperties(); Mockito.doReturn("/modbus/collect/0").when(testMessageProperties).getConsumerQueue(); this.dynamicRabbitListener.getComposeListener().onMessage(testMessage10301); this.dynamicRabbitListener.getComposeListener().onMessage(testMessage10302); LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(2)); Map row = this.redisTemplate.opsForHash().entries("data:device:50002"); System.out.println(JSONUtil.toJsonStr(row)); } }