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("<bts><cmd>getdevinfo_resp</cmd><middle count=\"0\"/></bts>");
|
|
assertEquals("<bts><cmd>getdevinfo_resp</cmd><middle count=\"0\"/></bts>",
|
transport.exchange("<bts><cmd>getdevinfo</cmd></bts>"));
|
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));
|
}
|
}
|
}
|