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