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));
}
}