95 lines
2.5 KiB
Java
95 lines
2.5 KiB
Java
package jmri.jmrix.loconet;
|
|
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
*
|
|
* @author Bob Jacobsen Copyright (c) 2002
|
|
*/
|
|
public class LnTrafficRouterTest {
|
|
|
|
@Test
|
|
public void testConnectAndSend() {
|
|
// scaffold for upstream
|
|
LocoNetInterfaceScaffold upstream = new LocoNetInterfaceScaffold();
|
|
|
|
// create object
|
|
LnTrafficRouter router = new LnTrafficRouter(memo);
|
|
memo.setLnTrafficController(router);
|
|
|
|
Assert.assertEquals("router is tc", memo.getLnTrafficController(), router);
|
|
|
|
// connect
|
|
router.connect(upstream);
|
|
Assert.assertTrue("connected", router.status());
|
|
|
|
// send a message
|
|
LocoNetMessage m = new LocoNetMessage(3);
|
|
router.sendLocoNetMessage(m);
|
|
|
|
// check receipt
|
|
Assert.assertEquals("one message sent", 1, upstream.outbound.size());
|
|
Assert.assertTrue(upstream.outbound.elementAt(0) == m);
|
|
}
|
|
|
|
private int count = 0;
|
|
|
|
@Test
|
|
public void testReceiveAndForward() {
|
|
// create object
|
|
LnTrafficRouter router = new LnTrafficRouter(memo);
|
|
memo.setLnTrafficController(router);
|
|
Assert.assertEquals("router is tc", memo.getLnTrafficController(), router);
|
|
|
|
count = 0;
|
|
// register a listener
|
|
LocoNetListener l = (LocoNetMessage m) -> {
|
|
count++;
|
|
};
|
|
router.addLocoNetListener(~0, l);
|
|
// send a message
|
|
LocoNetMessage m = new LocoNetMessage(3);
|
|
router.message(m);
|
|
|
|
// check receipt
|
|
Assert.assertEquals("one message sent", 1, count);
|
|
}
|
|
|
|
@Test
|
|
public void testConnectAndDisconnect() {
|
|
// scaffold for upstream
|
|
LocoNetInterfaceScaffold upstream = new LocoNetInterfaceScaffold(memo);
|
|
|
|
// create object
|
|
LnTrafficRouter router = new LnTrafficRouter(memo);
|
|
memo.setLnTrafficController(router);
|
|
Assert.assertEquals("router is tc", memo.getLnTrafficController(), router);
|
|
|
|
// connect
|
|
router.connect(upstream);
|
|
Assert.assertTrue("connected", router.status());
|
|
|
|
// disconnect
|
|
router.disconnectPort(upstream);
|
|
Assert.assertTrue("not connected", !router.status());
|
|
}
|
|
|
|
private LocoNetSystemConnectionMemo memo;
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
memo = new LocoNetSystemConnectionMemo();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
memo.dispose();
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
}
|