package jmri.jmrix.roco.z21; import jmri.util.JUnitUtil; import org.junit.Assert; import org.junit.jupiter.api.*; /** * * @author Paul Bender Copyright (C) 2017 */ public class Z21XNetMessageTest extends jmri.jmrix.lenz.XNetMessageTest { // Test the string constructor. @Override @Test public void testStringCtor() { msg = new Z21XNetMessage("12 34 AB 3 19 6 B B1"); Assert.assertEquals("length", 8, msg.getNumDataElements()); Assert.assertEquals("0th byte", 0x12, msg.getElement(0) & 0xFF); Assert.assertEquals("1st byte", 0x34, msg.getElement(1) & 0xFF); Assert.assertEquals("2nd byte", 0xAB, msg.getElement(2) & 0xFF); Assert.assertEquals("3rd byte", 0x03, msg.getElement(3) & 0xFF); Assert.assertEquals("4th byte", 0x19, msg.getElement(4) & 0xFF); Assert.assertEquals("5th byte", 0x06, msg.getElement(5) & 0xFF); Assert.assertEquals("6th byte", 0x0B, msg.getElement(6) & 0xFF); Assert.assertEquals("7th byte", 0xB1, msg.getElement(7) & 0xFF); } @Test @Override public void testStringCtorEmptyString() { msg= new Z21XNetMessage(""); Assert.assertEquals("length", 0, msg.getNumDataElements()); Assert.assertTrue("empty reply",msg.toString().equals("")); } @Test @Override public void testCtorXNetReply(){ Z21XNetReply x = new Z21XNetReply("12 34 AB 03 19 06 0B B1"); msg = new Z21XNetMessage(x); Assert.assertEquals("length", x.getNumDataElements(), msg.getNumDataElements()); Assert.assertEquals("0th byte", x.getElement(0)& 0xFF, msg.getElement(0)& 0xFF); Assert.assertEquals("1st byte", x.getElement(1)& 0xFF, msg.getElement(1)& 0xFF); Assert.assertEquals("2nd byte", x.getElement(2)& 0xFF, msg.getElement(2)& 0xFF); Assert.assertEquals("3rd byte", x.getElement(3)& 0xFF, msg.getElement(3)& 0xFF); Assert.assertEquals("4th byte", x.getElement(4)& 0xFF, msg.getElement(4)& 0xFF); Assert.assertEquals("5th byte", x.getElement(5)& 0xFF, msg.getElement(5)& 0xFF); Assert.assertEquals("6th byte", x.getElement(6)& 0xFF, msg.getElement(6)& 0xFF); Assert.assertEquals("7th byte", x.getElement(7)& 0xFF, msg.getElement(7)& 0xFF); } @Test public void testToMonitorStringZ21_LAN_X_GET_TURNOUT_INFO(){ Z21XNetMessage m = Z21XNetMessage.getZ21TurnoutInfoRequestMessage(1); Assert.assertEquals("Monitor String",Bundle.getMessage("Z21LAN_X_GET_TURNOUT_INFO",1),m.toMonitorString()); } @Test public void testToMonitorStringZ21_LAN_X_SET_TURNOUT() { Z21XNetMessage m = Z21XNetMessage.getZ21SetTurnoutRequestMessage(1, true, false, false); Assert.assertEquals("Set Turnout Thrown Monitor String", Bundle.getMessage("Z21LAN_X_SET_TURNOUT", 1, "deactivate", 1, false), m.toMonitorString()); m = Z21XNetMessage.getZ21SetTurnoutRequestMessage(1, false, true, true); Assert.assertEquals("Set Turnout Closed Monitor String", Bundle.getMessage("Z21LAN_X_SET_TURNOUT", 1, "activate", 0, true), m.toMonitorString()); } @BeforeEach @Override public void setUp() { JUnitUtil.setUp(); m = msg = new Z21XNetMessage(3); } @AfterEach @Override public void tearDown() { m = msg = null; JUnitUtil.tearDown(); // make sure the message timeouts and retries are set to // the defaults. jmri.jmrix.lenz.XNetMessage.setXNetMessageTimeout(5000); jmri.jmrix.lenz.XNetMessage.setXNetMessageRetries(5); } // private static final Logger log = LoggerFactory.getLogger(Z21XNetMessageTest.class); }