95 lines
2.7 KiB
Java
95 lines
2.7 KiB
Java
package jmri.jmrix.can.adapters.gridconnect.canrs;
|
|
|
|
import jmri.jmrix.can.CanMessage;
|
|
import jmri.util.JUnitAppender;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
* Tests for the jmri.jmrix.can.adapters.gridconnect.canrs.MergMessage class
|
|
*
|
|
* @author Bob Jacobsen Copyright 2008, 2009
|
|
*/
|
|
public class MergMessageTest extends jmri.jmrix.AbstractMessageTestBase {
|
|
|
|
private MergMessage g = null;
|
|
|
|
// :S123N12345678;
|
|
@Test
|
|
public void testOne() {
|
|
Assert.assertEquals("standard format 2 byte", ":S2460N12345678;", g.toString());
|
|
}
|
|
|
|
// :XF00DN;
|
|
@Test
|
|
public void testTwo() {
|
|
|
|
CanMessage msg = new CanMessage(0xF00D);
|
|
msg.setExtended(true);
|
|
msg.setRtr(false);
|
|
msg.setNumDataElements(0);
|
|
|
|
g = new MergMessage(msg);
|
|
Assert.assertEquals("extended format 4 byte", ":X0008F00DN;", g.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testThree() {
|
|
|
|
CanMessage msg = new CanMessage(0x12345678);
|
|
msg.setExtended(true);
|
|
msg.setRtr(true);
|
|
msg.setNumDataElements(4);
|
|
msg.setElement(0, 0x12);
|
|
msg.setElement(1, 0x34);
|
|
msg.setElement(2, 0x56);
|
|
msg.setElement(3, 0x78);
|
|
|
|
g = new MergMessage(msg);
|
|
Assert.assertEquals("extended format 4 byte", ":X91A85678R12345678;", g.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testByteOutOfRange() {
|
|
g.setByte(-99, 0);
|
|
JUnitAppender.assertErrorMessageStartsWith("Byte value -99 out of range 0-255 for MergMessage data payload");
|
|
|
|
g.setByte(321, 0);
|
|
JUnitAppender.assertErrorMessageStartsWith("Byte value 321 out of range 0-255 for MergMessage data payload");
|
|
|
|
g.setByte(0xAA, 22);
|
|
JUnitAppender.assertErrorMessageStartsWith("Byte Index 22 out of range 0-7 for MergMessage data payload");
|
|
|
|
g.setByte(0xAA, -1);
|
|
JUnitAppender.assertErrorMessageStartsWith("Byte Index -1 out of range 0-7 for MergMessage data payload");
|
|
}
|
|
|
|
@Override
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
|
|
CanMessage msg = new CanMessage(0x123);
|
|
msg.setExtended(false);
|
|
msg.setRtr(false);
|
|
msg.setNumDataElements(4);
|
|
msg.setElement(0, 0x12);
|
|
msg.setElement(1, 0x34);
|
|
msg.setElement(2, 0x56);
|
|
msg.setElement(3, 0x78);
|
|
|
|
m = g = new MergMessage(msg);
|
|
}
|
|
|
|
@Override
|
|
@AfterEach
|
|
public void tearDown() {
|
|
m = g = null;
|
|
JUnitUtil.clearShutDownManager(); // put in place because AbstractMRTrafficController implementing subclass was not terminated properly
|
|
JUnitUtil.tearDown();
|
|
|
|
}
|
|
}
|