159 lines
5.1 KiB
Java
159 lines
5.1 KiB
Java
package jmri.jmrix.can.adapters.gridconnect.canrs;
|
|
|
|
import jmri.jmrix.can.CanReply;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
* Tests for the jmri.jmrix.can.adapters.gridconnect.canrs.MergReply class
|
|
*
|
|
* @author Bob Jacobsen Copyright 2008, 2009
|
|
*/
|
|
public class MergReplyTest extends jmri.jmrix.AbstractMessageTestBase {
|
|
|
|
// :S1260N12345678;
|
|
@Test
|
|
public void testOne() {
|
|
|
|
MergReply g = new MergReply(":S1260N12345678;");
|
|
|
|
CanReply r = g.createReply();
|
|
|
|
Assert.assertEquals("extended", false, r.isExtended());
|
|
Assert.assertEquals("rtr", false, r.isRtr());
|
|
Assert.assertEquals("header", unMungeStdHeader(0x1260), r.getHeader());
|
|
Assert.assertEquals("num elements", 4, r.getNumDataElements());
|
|
Assert.assertEquals("el 0", 0x12, r.getElement(0));
|
|
Assert.assertEquals("el 1", 0x34, r.getElement(1));
|
|
Assert.assertEquals("el 2", 0x56, r.getElement(2));
|
|
Assert.assertEquals("el 3", 0x78, r.getElement(3));
|
|
}
|
|
|
|
// :XF00DN;
|
|
@Test
|
|
public void testTwo() {
|
|
|
|
MergReply g = new MergReply(":XF00DN;");
|
|
|
|
CanReply r = g.createReply();
|
|
|
|
Assert.assertEquals("extended", true, r.isExtended());
|
|
Assert.assertEquals("rtr", false, r.isRtr());
|
|
Assert.assertEquals("header", 0xF00D, r.getHeader());
|
|
Assert.assertEquals("num elements", 0, r.getNumDataElements());
|
|
}
|
|
|
|
@Test
|
|
public void testThree() {
|
|
|
|
MergReply g = new MergReply(":X123R12345678;");
|
|
|
|
CanReply r = g.createReply();
|
|
|
|
Assert.assertEquals("extended", true, r.isExtended());
|
|
Assert.assertEquals("rtr", true, r.isRtr());
|
|
Assert.assertEquals("header", 0x123, r.getHeader());
|
|
Assert.assertEquals("num elements", 4, r.getNumDataElements());
|
|
Assert.assertEquals("el 0", 0x12, r.getElement(0));
|
|
Assert.assertEquals("el 1", 0x34, r.getElement(1));
|
|
Assert.assertEquals("el 2", 0x56, r.getElement(2));
|
|
Assert.assertEquals("el 3", 0x78, r.getElement(3));
|
|
}
|
|
|
|
@Test
|
|
public void testThreeAlt() {
|
|
|
|
MergReply g = new MergReply(":X0000123R12345678;");
|
|
|
|
CanReply r = g.createReply();
|
|
|
|
Assert.assertEquals("extended", true, r.isExtended());
|
|
Assert.assertEquals("rtr", true, r.isRtr());
|
|
Assert.assertEquals("header", 0x123, r.getHeader());
|
|
Assert.assertEquals("num elements", 4, r.getNumDataElements());
|
|
Assert.assertEquals("el 0", 0x12, r.getElement(0));
|
|
Assert.assertEquals("el 1", 0x34, r.getElement(1));
|
|
Assert.assertEquals("el 2", 0x56, r.getElement(2));
|
|
Assert.assertEquals("el 3", 0x78, r.getElement(3));
|
|
}
|
|
|
|
@Test
|
|
public void testThreeBis() {
|
|
|
|
MergReply g = new MergReply(":X000123R12345678;");
|
|
|
|
CanReply r = g.createReply();
|
|
|
|
Assert.assertEquals("extended", true, r.isExtended());
|
|
Assert.assertEquals("rtr", true, r.isRtr());
|
|
Assert.assertEquals("header", 0x123, r.getHeader());
|
|
Assert.assertEquals("num elements", 4, r.getNumDataElements());
|
|
Assert.assertEquals("el 0", 0x12, r.getElement(0));
|
|
Assert.assertEquals("el 1", 0x34, r.getElement(1));
|
|
Assert.assertEquals("el 2", 0x56, r.getElement(2));
|
|
Assert.assertEquals("el 3", 0x78, r.getElement(3));
|
|
}
|
|
|
|
@Test
|
|
public void testFour() {
|
|
|
|
MergReply g = new MergReply(":XFFE3FFFFR63;");
|
|
|
|
CanReply r = g.createReply();
|
|
|
|
Assert.assertEquals("extended", true, r.isExtended());
|
|
Assert.assertEquals("rtr", true, r.isRtr());
|
|
Assert.assertEquals("header", unMungeExtHeader(0xFFE3FFFF), r.getHeader());
|
|
Assert.assertEquals("num elements", 1, r.getNumDataElements());
|
|
Assert.assertEquals("el 1", 0x63, r.getElement(0));
|
|
}
|
|
|
|
@Test
|
|
public void testZeroLengthRtr() {
|
|
MergReply g = new MergReply(":SB0F0R;");
|
|
CanReply r = g.createReply();
|
|
|
|
Assert.assertEquals("rtr", true, r.isRtr());
|
|
Assert.assertEquals("extended", false, r.isExtended());
|
|
Assert.assertEquals("header", 1415, r.getHeader());
|
|
Assert.assertEquals("num elements", 0, r.getNumDataElements());
|
|
}
|
|
|
|
@Test
|
|
public void testZeroLengthStandard() {
|
|
MergReply g = new MergReply(":SB180N;");
|
|
CanReply r = g.createReply();
|
|
|
|
Assert.assertEquals("rtr", false, r.isRtr());
|
|
Assert.assertEquals("extended", false, r.isExtended());
|
|
Assert.assertEquals("header", 1420, r.getHeader());
|
|
Assert.assertEquals("num elements", 0, r.getNumDataElements());
|
|
}
|
|
|
|
// Left shift a standard header from CBUS specific format
|
|
public int unMungeStdHeader(int h) {
|
|
return (h >> 5);
|
|
}
|
|
|
|
// Un-munge extended header from CBUS specific format
|
|
public int unMungeExtHeader(int h) {
|
|
return (((h >> 3) & 0x1FFC0000) | (h & 0x3FFFF));
|
|
}
|
|
|
|
@Override
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
m = new MergReply(":S1260N12345678;");
|
|
}
|
|
|
|
@AfterEach
|
|
@Override
|
|
public void tearDown() {
|
|
m = null;
|
|
JUnitUtil.tearDown();
|
|
}
|
|
}
|