291 lines
7.3 KiB
Java
291 lines
7.3 KiB
Java
package jmri.jmrix.can.cbus;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import jmri.jmrix.can.CanSystemConnectionMemo;
|
|
import jmri.jmrix.can.TrafficControllerScaffold;
|
|
import jmri.util.JUnitUtil;
|
|
import jmri.util.swing.TextAreaFIFO;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
* @author Steve Young Copyright (C) 2019
|
|
*/
|
|
public class CbusSendTest {
|
|
|
|
private TrafficControllerScaffold tcis;
|
|
private CanSystemConnectionMemo memo;
|
|
private CbusSend send;
|
|
private TextAreaFIFO ta;
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
assertNotNull( send, "exists");
|
|
}
|
|
|
|
@Test
|
|
public void testnodeExitLearnEvMode() {
|
|
send.nodeExitLearnEvMode(54321);
|
|
checknodeExitLearnEvMode();
|
|
}
|
|
|
|
@Test
|
|
public void testnodeEnterLearnEvMode() {
|
|
send.nodeEnterLearnEvMode(54321);
|
|
checknodeEnterLearnEvMode();
|
|
}
|
|
|
|
@Test
|
|
public void testnodeSetNodeNumber() {
|
|
send.nodeSetNodeNumber(12345);
|
|
checknodeSetNodeNumber();
|
|
}
|
|
|
|
@Test
|
|
public void testnodeRequestParamSetup() {
|
|
send.nodeRequestParamSetup();
|
|
checknodeRequestParamSetup();
|
|
}
|
|
|
|
@Test
|
|
public void testnodeTeachEventLearnMode() {
|
|
send.nodeTeachEventLearnMode(54321,12345,8,255);
|
|
checknodeTeachEventLearnMode();
|
|
}
|
|
|
|
@Test
|
|
public void testnodenodeUnlearnEvent() {
|
|
send.nodeUnlearnEvent(0XFD,0xee);
|
|
checknodeUnlearnEvent();
|
|
}
|
|
|
|
@Test
|
|
public void testrEVAL() {
|
|
send.rEVAL(987,123,6541);
|
|
checkrEVAL();
|
|
}
|
|
|
|
@Test
|
|
public void testrQNPN() {
|
|
send.rQNPN(555,777);
|
|
checkrQNPN();
|
|
}
|
|
|
|
@Test
|
|
public void testsearchForNodes() {
|
|
send.searchForNodes();
|
|
checksearchForNodes();
|
|
}
|
|
|
|
@Test
|
|
public void testnVRD() {
|
|
send.nVRD(4321,123);
|
|
checknVRD();
|
|
}
|
|
|
|
@Test
|
|
public void testnVSET() {
|
|
send.nVSET(65432,123,1);
|
|
checknVSET();
|
|
}
|
|
|
|
@Test
|
|
public void testrQEVN() {
|
|
send.rQEVN(12345);
|
|
checkrQEVN();
|
|
}
|
|
|
|
@Test
|
|
public void testnERD() {
|
|
send.nERD(44444);
|
|
checknERD();
|
|
}
|
|
|
|
@Test
|
|
public void testaRST() {
|
|
send.aRST();
|
|
checkaRST();
|
|
}
|
|
|
|
@Test
|
|
public void testCbusEnumerationSent() {
|
|
send.eNUM(1234);
|
|
checkeNUM();
|
|
}
|
|
|
|
@Test
|
|
public void testcANID() {
|
|
send.cANID(6543,77);
|
|
checkcANID();
|
|
}
|
|
|
|
@Test
|
|
public void testnNCLR() {
|
|
send.nNCLR(4321);
|
|
checknNCLR();
|
|
}
|
|
|
|
@Test
|
|
public void testrQmn() {
|
|
send.rQmn();
|
|
checkrQmn();
|
|
}
|
|
|
|
@Test
|
|
public void testTextAreaAdd2() {
|
|
ta = new TextAreaFIFO(9);
|
|
CbusSend tasend = new CbusSend(memo,ta);
|
|
assertNotNull( tasend, "exists");
|
|
tasend.nodeExitLearnEvMode(22222);
|
|
assertTrue( (ta.getText()).contains("2 exit learn mode."),
|
|
"textarea is updated 2");
|
|
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testTextAreaAdd3() {
|
|
ta = new TextAreaFIFO(9);
|
|
CbusSend tasend = new CbusSend(memo,ta);
|
|
assertNotNull( tasend, "exists");
|
|
tasend.nodeEnterLearnEvMode(33333);
|
|
assertTrue( (ta.getText()).contains("3 enter learn mode."), "textarea is updated 3");
|
|
}
|
|
|
|
private void checknodeExitLearnEvMode() {
|
|
assertEquals( "[5f8] 54 D4 31",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"Node exit learn sent");
|
|
}
|
|
|
|
private void checknodeEnterLearnEvMode() {
|
|
assertEquals( "[5f8] 53 D4 31",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"Node enter learn sent");
|
|
}
|
|
|
|
private void checknodeSetNodeNumber() {
|
|
assertEquals( "[5f8] 42 30 39",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"Node set nn sent");
|
|
}
|
|
|
|
private void checknodeRequestParamSetup() {
|
|
assertEquals( "[5f8] 10",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"Node request param setup sent");
|
|
}
|
|
|
|
private void checknodeTeachEventLearnMode() {
|
|
assertEquals( "[5f8] D2 D4 31 30 39 08 FF",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"Node Teach Event LearnMode sent");
|
|
}
|
|
|
|
private void checknodeUnlearnEvent() {
|
|
assertEquals( "[5f8] 95 00 FD 00 EE",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"Node Unlearn Event sent");
|
|
}
|
|
|
|
private void checkrEVAL() {
|
|
assertEquals( "[5f8] 9C 03 DB 7B 8D",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"rEVAL Event sent");
|
|
}
|
|
|
|
private void checkrQNPN() {
|
|
assertEquals( "[5f8] 73 02 2B 09",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"rQNPN Event sent");
|
|
}
|
|
|
|
private void checksearchForNodes() {
|
|
assertEquals( "[5f8] 0D",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"searchForNodes sent");
|
|
}
|
|
|
|
private void checknVRD() {
|
|
assertEquals( "[5f8] 71 10 E1 7B",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"nVRD sent");
|
|
}
|
|
|
|
private void checknVSET() {
|
|
assertEquals( "[5f8] 96 FF 98 7B 01",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"nVSET sent");
|
|
}
|
|
|
|
private void checkrQEVN() {
|
|
assertEquals( "[5f8] 58 30 39",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"rQEVN sent");
|
|
}
|
|
|
|
private void checknERD() {
|
|
assertEquals( "[5f8] 57 AD 9C",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"nERD sent");
|
|
}
|
|
|
|
private void checkaRST() {
|
|
assertEquals( "[5f8] 07",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"aRST sent");
|
|
}
|
|
|
|
private void checkeNUM() {
|
|
assertEquals( "[5f8] 5D 04 D2",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"eNUM sent");
|
|
}
|
|
|
|
private void checkcANID() {
|
|
assertEquals( "[5f8] 75 19 8F 4D",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"cANID sent");
|
|
}
|
|
|
|
private void checknNCLR() {
|
|
assertEquals( "[5f8] 55 10 E1",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"nNCLR sent");
|
|
}
|
|
|
|
private void checkrQmn() {
|
|
assertEquals( "[5f8] 11",
|
|
tcis.outbound.elementAt(tcis.outbound.size() - 1).toString(),
|
|
"rQmn sent");
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
memo = new CanSystemConnectionMemo();
|
|
tcis = new TrafficControllerScaffold();
|
|
memo.setTrafficController(tcis);
|
|
send = new CbusSend(memo,null);
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
send = null;
|
|
memo.dispose();
|
|
tcis.terminateThreads();
|
|
tcis = null;
|
|
memo = null;
|
|
ta = null;
|
|
JUnitUtil.tearDown();
|
|
|
|
}
|
|
|
|
// private static final Logger log = LoggerFactory.getLogger(CbusSendTest.class);
|
|
}
|