package com.ruoyi.device.contract; import static org.junit.jupiter.api.Assertions.assertEquals; import java.time.Duration; import org.junit.jupiter.api.Test; import com.ruoyi.device.bts.BtsTcpTransport; import com.ruoyi.device.bts.ScriptedBtsTcpSimulator; class SimulatorPublicContractTest { @Test void simulatorIsReusableOutsideTheBtsPackage() throws Exception { try (ScriptedBtsTcpSimulator simulator = new ScriptedBtsTcpSimulator(); BtsTcpTransport transport = new BtsTcpTransport("127.0.0.1", simulator.port(), Duration.ofSeconds(1), Duration.ofSeconds(1))) { simulator.enqueue("getdevinfo_resp"); assertEquals("getdevinfo_resp", transport.exchange("getdevinfo")); assertEquals(1, simulator.requests().size()); } } @Test void simulatorPreservesRequestEndingWithDelimiterPrefix() throws Exception { try (ScriptedBtsTcpSimulator simulator = new ScriptedBtsTcpSimulator(); BtsTcpTransport transport = new BtsTcpTransport("127.0.0.1", simulator.port(), Duration.ofSeconds(1), Duration.ofSeconds(1))) { simulator.enqueue("ok"); assertEquals("ok", transport.exchange("payload#")); assertEquals("payload#", simulator.requests().get(0)); } } }