package jmri.jmrix.can.cbus; import jmri.jmrix.can.CanMessage; import jmri.jmrix.can.CanReply; import jmri.util.JUnitUtil; import org.junit.Assert; import org.junit.jupiter.api.*; /** * * @author Paul Bender Copyright (C) 2017 * @author Steve Young Copyright (C) 2018 2019 */ public class CbusMessageTest { // no testCtor as class only supplies static methods @Test public void testOpcRangeToSTL() { CanReply r = new CanReply(); r.setNumDataElements(1); r.setElement(0, 0x93); // ARON OPC CanReply m = CbusMessage.opcRangeToStl(r); Assert.assertTrue("ARON OPC Changed", m.getElement(0) == 0x90); // ACON OPC r = new CanReply(); r.setNumDataElements(1); r.setElement(0, 0x94); // AROF OPC m = CbusMessage.opcRangeToStl(r); Assert.assertTrue("AROF OPC Changed", m.getElement(0) == 0x91); // ACOF OPC r = new CanReply(); r.setNumDataElements(1); r.setElement(0, 0x9d); // ARSON OPC m = CbusMessage.opcRangeToStl(r); Assert.assertTrue("ARSON OPC Changed", m.getElement(0) == 0x98); // ASON OPC r = new CanReply(); r.setNumDataElements(1); r.setElement(0, 0x9e); // ARSOF OPC m = CbusMessage.opcRangeToStl(r); Assert.assertTrue("ARSOF OPC Changed", m.getElement(0) == 0x99); // ASOF OPC r = new CanReply(); r.setNumDataElements(1); r.setElement(0, 0x95); // EVULN OPC m = CbusMessage.opcRangeToStl(r); Assert.assertTrue("Other OPCs do not change", m.getElement(0) == 0x95); // EVULN OPC } @Test public void testgetNodeNumberMessage() { CanMessage m = new CanMessage(0x12); m.setNumDataElements(5); m.setElement(0, 0x90); // ACON OPC m.setElement(1, 0xee); m.setElement(2, 0x56); m.setElement(3, 0x11); m.setElement(4, 0x16); Assert.assertTrue("Node calculated OK", CbusMessage.getNodeNumber(m) == 61014); m.setElement(0, 0x95); // EVULN OPC Assert.assertTrue("Not an event returns node 0", CbusMessage.getNodeNumber(m) == 0 ); } @Test public void testgetNodeNumberReply() { CanReply r = new CanReply(); r.setNumDataElements(5); r.setElement(0, 0x90); // ACON OPC r.setElement(1, 0xee); r.setElement(2, 0x56); r.setElement(3, 0x11); r.setElement(4, 0x16); Assert.assertTrue("Node calculated OK", CbusMessage.getNodeNumber(r) == 61014); r.setElement(0, 0x95); // EVULN OPC Assert.assertTrue("Not an event returns node 0", CbusMessage.getNodeNumber(r) == 0 ); } @Test public void testgetEventMessage() { CanMessage m = new CanMessage(0x12); m.setNumDataElements(5); m.setElement(0, 0x90); // ACON OPC m.setElement(1, 0xee); m.setElement(2, 0x56); m.setElement(3, 0x11); m.setElement(4, 0x16); Assert.assertTrue("Event calculated OK", CbusMessage.getEvent(m) == 4374); m.setElement(0, 0x95); // EVULN OPC Assert.assertTrue("Not an event returns -1", CbusMessage.getEvent(m) == -1 ); } @Test public void testgetEventReply() { CanReply r = new CanReply(); r.setNumDataElements(5); r.setElement(0, 0x90); // ACON OPC r.setElement(1, 0xee); r.setElement(2, 0x56); r.setElement(3, 0x11); r.setElement(4, 0x16); Assert.assertTrue("Event calculated OK", CbusMessage.getEvent(r) == 4374); r.setElement(0, 0x95); // EVULN OPC Assert.assertTrue("Not an event returns -1", CbusMessage.getEvent(r) == -1 ); } @Test public void testgetEventTypeMessage() { CanMessage m = new CanMessage(0x12); m.setNumDataElements(1); m.setElement(0, 0x90); // ACON OPC Assert.assertTrue("Event Type On", CbusMessage.getEventType(m) == CbusConstants.EVENT_ON); m.setElement(0, 0x99); // ASOF OPC Assert.assertTrue("Event Type Off", CbusMessage.getEventType(m) == CbusConstants.EVENT_OFF ); } @Test public void testgetEventTypeReply() { CanReply r = new CanReply(); r.setNumDataElements(1); r.setElement(0, 0x90); // ACON OPC Assert.assertTrue("Event Type On", CbusMessage.getEventType(r) == CbusConstants.EVENT_ON); r.setElement(0, 0x99); // ASOF OPC Assert.assertTrue("Event Type Off", CbusMessage.getEventType(r) == CbusConstants.EVENT_OFF ); } @Test public void testisEventMessage() { CanMessage m = new CanMessage(0x12); m.setNumDataElements(1); m.setElement(0, 0x90); // ACON OPC Assert.assertTrue("Is Event", CbusMessage.isEvent(m) == true); m.setElement(0, 0x95); // EVULN OPC Assert.assertTrue("Is Not Event", CbusMessage.isEvent(m) == false ); } @Test public void testisEventReply() { CanReply r = new CanReply(0x12); r.setNumDataElements(1); r.setElement(0, 0x90); // ACON OPC Assert.assertTrue("Is Event", CbusMessage.isEvent(r) == true); r.setElement(0, 0x95); // EVULN OPC Assert.assertTrue("Is Not Event", CbusMessage.isEvent(r) == false ); } @Test public void testisShortMessage() { CanMessage m = new CanMessage(0x12); m.setNumDataElements(1); m.setElement(0, 0x90); // ACON OPC Assert.assertTrue("Is Not Short", CbusMessage.isShort(m) == false); m.setElement(0, 0x99); // ASOF OPC Assert.assertTrue("Is Short", CbusMessage.isShort(m) == true ); } @Test public void testisShortReply() { CanReply r = new CanReply(0x12); r.setNumDataElements(1); r.setElement(0, 0x90); // ACON OPC Assert.assertTrue("Is Not Short", CbusMessage.isShort(r) == false); r.setElement(0, 0x99); // ASOF OPC Assert.assertTrue("Is Short", CbusMessage.isShort(r) == true ); } @Test public void testtoAddressMessage() { CanMessage m = new CanMessage(0x12); m.setNumDataElements(5); m.setElement(0, 0x90); // ACON OPC m.setElement(1, 0xdd); m.setElement(2, 0xab); m.setElement(3, 0x4b); m.setElement(4, 0xb3); Assert.assertEquals("string toAddressMessageAcon","+n56747e19379",CbusMessage.toAddress(m)); m.setElement(0, 0x91); // ACOF OPC Assert.assertEquals("toAddressMessageAcof","-n56747e19379",CbusMessage.toAddress(m) ); m.setElement(0, 0x98); // ASON OPC Assert.assertEquals("toAddressMessageAson", "+19379",CbusMessage.toAddress(m) ); m.setElement(0, 0x99); // ASOF OPC Assert.assertEquals("toAddressMessageAsof", "-19379",CbusMessage.toAddress(m) ); m.setElement(0, 0x9e); // ARSON OPC Assert.assertEquals("toAddressMessageArson", "X9EDDAB4BB3", CbusMessage.toAddress(m) ); } @Test public void testtoAddressReply() { CanReply r = new CanReply(0x12); r.setNumDataElements(5); r.setElement(0, 0x90); // ACON OPC r.setElement(1, 0xdd); r.setElement(2, 0xab); r.setElement(3, 0x4b); r.setElement(4, 0xb3); Assert.assertEquals("toAddressReplyAcon","+n56747e19379",CbusMessage.toAddress(r)); r.setElement(0, 0x91); // ACOF OPC Assert.assertEquals("toAddressReplyAcof", "-n56747e19379",CbusMessage.toAddress(r) ); r.setElement(0, 0x98); // ASON OPC Assert.assertEquals("toAddressReplyAson", "+19379",CbusMessage.toAddress(r) ); r.setElement(0, 0x99); // ASOF OPC Assert.assertEquals("toAddressReplyAsof", "-19379",CbusMessage.toAddress(r) ); r.setElement(0, 0x9e); // ARSON OPC Assert.assertEquals("toAddressReplyArson", "X9EDDAB4BB3",CbusMessage.toAddress(r) ); } @Test public void testisRequestTrackOffMessage() { CanMessage m = new CanMessage(0x12,1); m.setElement(0, 0x08); // RTOF OPC Assert.assertEquals("isRequestTrackOff Good Message", CbusMessage.isRequestTrackOff(m),true); m = new CanMessage(0x12,1); m.setElement(0, 0x09); // RTON OPC Assert.assertEquals("isRequestTrackOff Bad Message", CbusMessage.isRequestTrackOff(m),false); } @Test public void testisRequestTrackOnMessage() { CanMessage m = new CanMessage(0x12,1); m.setElement(0, 0x09); // RTON OPC Assert.assertEquals("isRequestTrackOn Good Message", CbusMessage.isRequestTrackOn(m),true); m = new CanMessage(0x12,1); m.setElement(0, 0x08); // RTOF OPC Assert.assertEquals("isRequestTrackOn Bad Message", CbusMessage.isRequestTrackOn(m),false); } @Test public void testisTrackOnReply() { CanReply r = new CanReply(0x12); r.setNumDataElements(1); r.setElement(0, 0x05); // TON OPC Assert.assertEquals("isRequestTrackOn Good Reply", CbusMessage.isTrackOn(r),true); r = new CanReply(0x12); r.setNumDataElements(1); r.setElement(0, 0x04); // TOF OPC Assert.assertEquals("isRequestTrackOn Bad Reply", CbusMessage.isTrackOn(r),false); } @Test public void testisTrackOffReply() { CanReply r = new CanReply(0x12); r.setNumDataElements(1); r.setElement(0, 0x04); // TOF OPC Assert.assertEquals("isRequestTrackOff Good Reply", CbusMessage.isTrackOff(r),true); r = new CanReply(0x12); r.setNumDataElements(1); r.setElement(0, 0x05); // TON OPC Assert.assertEquals("isRequestTrackOff Bad Reply", CbusMessage.isTrackOff(r),false); } @Test public void testgetRequestTrackOnMessage() { CanMessage m = CbusMessage.getRequestTrackOn(0x12); Assert.assertTrue("getRequestTrackOn OPC", m.getElement(0) == 0x09); // RTON OPC Assert.assertTrue("getRequestTrackOn Length", m.getNumDataElements() == 1); } @Test public void testgetRequestTrackOffMessage() { CanMessage m = CbusMessage.getRequestTrackOff(0x12); Assert.assertTrue("getRequestTrackOff OPC", m.getElement(0) == 0x08); // RTON OPC Assert.assertTrue("getRequestTrackOff Length", m.getNumDataElements() == 1); } @Test public void testgetDataLength() { CanReply r = new CanReply(0x12); CanMessage m = new CanMessage(0x12); r.setElement(0, 0x04); // TOF OPC m.setElement(0, 0x04); // TOF OPC Assert.assertEquals("Data Length 0 r",0,CbusMessage.getDataLength(r)); Assert.assertEquals("Data Length 0 m",0,CbusMessage.getDataLength(m)); r.setElement(0, 0x11); // RQMN m.setElement(0, 0x11); // RQMN Assert.assertEquals("Data Length 0 r",0,CbusMessage.getDataLength(r)); Assert.assertEquals("Data Length 0 m",0,CbusMessage.getDataLength(m)); r.setElement(0, 0x83); // WCVB OPC m.setElement(0, 0x83); // WCVB OPC Assert.assertEquals("Data Length 4 r",4,CbusMessage.getDataLength(r)); Assert.assertEquals("Data Length 4 m",4,CbusMessage.getDataLength(m)); r.setElement(0, 0xe2); // NAME m.setElement(0, 0xe2); // NAME Assert.assertEquals("Data Length 7 r",7,CbusMessage.getDataLength(r)); Assert.assertEquals("Data Length 7 m",7,CbusMessage.getDataLength(m)); } @Test public void testsetgetPriority() { try { CbusMessage.setPri(null,0x01); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("null is Not a CanMutableFrame", e.getMessage()); } try { CbusMessage.getPri(null); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("null is Not a CanFrame", e.getMessage()); } CanReply r = new CanReply(0x00); CanMessage m = new CanMessage(0x00); Assert.assertEquals("Priority 0 r",0,CbusMessage.getPri(r)); Assert.assertEquals("Priority 0 m",0,CbusMessage.getPri(m)); try { CbusMessage.setPri(r,0xff); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("Invalid CBUS Priority value: 255", e.getMessage()); } try { CbusMessage.setPri(m,0xff); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("Invalid CBUS Priority value: 255", e.getMessage()); } CbusMessage.setPri(m,CbusConstants.DEFAULT_MINOR_PRIORITY); CbusMessage.setPri(r,CbusConstants.DEFAULT_MINOR_PRIORITY); Assert.assertEquals("Priority DEFAULT_MINOR_PRIORITY r",3,CbusMessage.getPri(r)); Assert.assertEquals("Priority DEFAULT_MINOR_PRIORITY m",3,CbusMessage.getPri(m)); CbusMessage.setPri(m,CbusConstants.DEFAULT_DYNAMIC_PRIORITY); CbusMessage.setPri(r,CbusConstants.DEFAULT_DYNAMIC_PRIORITY); Assert.assertEquals("Priority DEFAULT_DYNAMIC_PRIORITY r",2,CbusMessage.getPri(r)); Assert.assertEquals("Priority DEFAULT_DYNAMIC_PRIORITY m",2,CbusMessage.getPri(m)); r.setExtended(true); try { CbusMessage.setPri(r,CbusConstants.DEFAULT_MINOR_PRIORITY); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("Extended CBUS CAN Frames do not have a priority concept.", e.getMessage()); } m.setExtended(true); try { CbusMessage.setPri(m,CbusConstants.DEFAULT_MINOR_PRIORITY); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("Extended CBUS CAN Frames do not have a priority concept.", e.getMessage()); } } @Test public void testsetgetId() { try { CbusMessage.setId(null,0x01); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("null is Not a CanMutableFrame", e.getMessage()); } try { CbusMessage.getId(null); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("null is Not a CanFrame", e.getMessage()); } CanReply r = new CanReply(0x00); CanMessage m = new CanMessage(0x00); Assert.assertEquals("getId 0 r",0,CbusMessage.getId(r)); Assert.assertEquals("getId 0 m",0,CbusMessage.getId(m)); CbusMessage.setId(r,0x01); CbusMessage.setId(m,0x01); Assert.assertEquals("getId 1 r",1,CbusMessage.getId(r)); Assert.assertEquals("getId 1 m",1,CbusMessage.getId(m)); CbusMessage.setId(r,120); CbusMessage.setId(m,120); Assert.assertEquals("getId 120 r",120,CbusMessage.getId(r)); Assert.assertEquals("getId 120 m",120,CbusMessage.getId(m)); try { CbusMessage.setId(r,0xff); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { } try { CbusMessage.setId(m,0xff); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { } r.setExtended(true); m.setExtended(true); try { CbusMessage.setId(r,0x05); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("No CAN ID Concept on Extended CBUS CAN Frame.", e.getMessage()); } try { CbusMessage.setId(m,0x05); Assert.fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("No CAN ID Concept on Extended CBUS CAN Frame.", e.getMessage()); } r.setExtended(false); m.setExtended(false); try { CbusMessage.setId(r,0xffffff); Assert.fail("r Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("invalid standard ID value: 16777215", e.getMessage()); } try { CbusMessage.setId(m,0xffffff); Assert.fail("m Should have thrown an exception"); } catch (IllegalArgumentException e) { Assert.assertEquals("invalid standard ID value: 16777215", e.getMessage()); } } @Test public void testisArst() { CanReply r = new CanReply(0x12); r.setNumDataElements(1); r.setElement(0, 0x07); // Arst OPC Assert.assertTrue(CbusMessage.isArst(r)); r.setElement(0, 0x06); Assert.assertFalse(CbusMessage.isArst(r)); } @Test public void testgetReadCV() { CanMessage m = CbusMessage.getReadCV(1,jmri.ProgrammingMode.PAGEMODE,0x12); Assert.assertEquals("PAGEMODE","[592] 84 FF 00 01 02",m.toString()); m = CbusMessage.getReadCV(255,jmri.ProgrammingMode.DIRECTBITMODE,0x12); Assert.assertEquals("DIRECTBITMODE","[592] 84 FF 00 FF 01",m.toString()); m = CbusMessage.getReadCV(214,jmri.ProgrammingMode.DIRECTBYTEMODE,0x12); Assert.assertEquals("DIRECTBYTEMODE","[592] 84 FF 00 D6 00",m.toString()); m = CbusMessage.getReadCV(214,jmri.ProgrammingMode.REGISTERMODE,0x12); Assert.assertEquals("REGISTERMODE","[592] 84 FF 00 D6 03",m.toString()); } @Test public void testgetVerifyCV() { CanMessage m = CbusMessage.getVerifyCV(1,jmri.ProgrammingMode.PAGEMODE,0x57,0x12); Assert.assertEquals("PAGEMODE","[592] A4 FF 00 01 02 57",m.toString()); m = CbusMessage.getVerifyCV(255,jmri.ProgrammingMode.DIRECTBITMODE,0x63,0x12); Assert.assertEquals("DIRECTBITMODE","[592] A4 FF 00 FF 01 63",m.toString()); m = CbusMessage.getVerifyCV(214,jmri.ProgrammingMode.DIRECTBYTEMODE,0x13,0x12); Assert.assertEquals("DIRECTBYTEMODE","[592] A4 FF 00 D6 00 13",m.toString()); m = CbusMessage.getVerifyCV(213,jmri.ProgrammingMode.REGISTERMODE,0xB9,0x12); Assert.assertEquals("REGISTERMODE","[592] A4 FF 00 D5 03 B9",m.toString()); } @Test public void testgetgetWriteCV() { CanMessage m = CbusMessage.getWriteCV(1,211,jmri.ProgrammingMode.PAGEMODE,0x12); Assert.assertEquals("PAGEMODE","[592] A2 FF 00 01 02 D3",m.toString()); m = CbusMessage.getWriteCV(255,1,jmri.ProgrammingMode.DIRECTBITMODE,0x12); Assert.assertEquals("DIRECTBITMODE","[592] A2 FF 00 FF 01 01",m.toString()); m = CbusMessage.getWriteCV(214,0,jmri.ProgrammingMode.DIRECTBYTEMODE,0x12); Assert.assertEquals("DIRECTBYTEMODE","[592] A2 FF 00 D6 00 00",m.toString()); m = CbusMessage.getWriteCV(214,123,jmri.ProgrammingMode.REGISTERMODE,0x12); Assert.assertEquals("REGISTERMODE","[592] A2 FF 00 D6 03 7B",m.toString()); } @Test public void testgetOpsModeWriteCV() { CanMessage m = CbusMessage.getOpsModeWriteCV(22,false,211,255,0x12); Assert.assertEquals("getOpsModeWriteCV","[592] C1 00 16 00 D3 05 FF",m.toString()); } @Test public void testgetBootEntry() { CanMessage m = CbusMessage.getBootEntry(43215,0x12); Assert.assertEquals("getBootEntry","[592] 5C A8 CF",m.toString()); } @Test public void testgetBootNop() { CanMessage m = CbusMessage.getBootNop(0x123456,0x12); Assert.assertEquals("getBootNop","[4] 56 34 12 00 1D 00 00 00",m.toString()); } @Test public void testgetBootReset() { CanMessage m = CbusMessage.getBootReset(0x12); Assert.assertEquals("getBootReset","[4] 00 00 00 00 1D 01 00 00",m.toString()); } @Test public void testgetBootInitialise() { CanMessage m = CbusMessage.getBootInitialise(0x123456,0x12); Assert.assertEquals("getBootInitialise","[4] 56 34 12 00 1D 02 00 00",m.toString()); } @Test public void testgetBootCheck() { CanMessage m = CbusMessage.getBootCheck(123,0x12); Assert.assertEquals("getBootCheck","[4] 00 00 00 00 1D 03 7B 00",m.toString()); } @Test public void testgetBootTest() { CanMessage m = CbusMessage.getBootTest(0x12); Assert.assertEquals("getBootTest","[4] 00 00 00 00 1D 04 00 00",m.toString()); } @Test public void testgetBootDevId() { CanMessage m = CbusMessage.getBootDevId(0x12); Assert.assertEquals("getBootDevid","[4] 00 00 00 00 1D 05 00 00",m.toString()); } @Test public void testgetBootId() { CanMessage m = CbusMessage.getBootId(0x12); Assert.assertEquals("getBootBootid","[4] 00 00 00 00 1D 06 00 00",m.toString()); } @Test public void testgetBootEnables() { CanMessage m = CbusMessage.getBootEnables(0x3, 0x12); Assert.assertEquals("getBootEnables","[4] 00 00 00 00 1D 07 03 00",m.toString()); } @Test public void testgetBootWriteData() { CanMessage m = CbusMessage.getBootWriteData( new int[]{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},0x12); Assert.assertEquals("getBootWriteData","[5] 01 02 03 04 05 06 07 08",m.toString()); m = CbusMessage.getBootWriteData( new int[]{0x01,0x02},0x12); Assert.assertEquals("getBootWriteData","[5] 01 02",m.toString()); m = CbusMessage.getBootWriteData( new byte[]{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},0x12); Assert.assertEquals("getBootWriteData","[5] 01 02 03 04 05 06 07 08",m.toString()); m = CbusMessage.getBootWriteData( new byte[]{0x01,0x02},0x12); Assert.assertEquals("getBootWriteData","[5] 01 02",m.toString()); } @Test public void testisBootError() { CanReply r = new CanReply(1); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootError fff",false,CbusMessage.isBootError(r)); // false false false r.setElement(0,0); Assert.assertEquals("isBootError ffp",false,CbusMessage.isBootError(r)); // ffp r.setHeader(0x10000004); Assert.assertEquals("isBootError fpp",false,CbusMessage.isBootError(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootError fpf",false,CbusMessage.isBootError(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootError ppf",false,CbusMessage.isBootError(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootError pff",false,CbusMessage.isBootError(r)); // pff r.setHeader(0x10000004); r.setElement(0,0); Assert.assertEquals("isBootError ppp",true,CbusMessage.isBootError(r)); // ppp } @Test public void testisBootDataError() { CanReply r = new CanReply(1); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootDataError fff",false,CbusMessage.isBootDataError(r)); // false false false r.setElement(0,0); Assert.assertEquals("isBootDataError ffp",false,CbusMessage.isBootDataError(r)); // ffp r.setHeader(0x10000005); Assert.assertEquals("isBootDataError fpp",false,CbusMessage.isBootDataError(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootDataError fpf",false,CbusMessage.isBootDataError(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootDataError ppf",false,CbusMessage.isBootDataError(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootDataError pff",false,CbusMessage.isBootDataError(r)); // pff r.setHeader(0x10000005); r.setElement(0,0); Assert.assertEquals("isBootDataError ppp",true,CbusMessage.isBootDataError(r)); // ppp } @Test public void testisBootOK() { CanReply r = new CanReply(1); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootOK fff",false,CbusMessage.isBootOK(r)); // false false false r.setElement(0,1); Assert.assertEquals("isBootOK ffp",false,CbusMessage.isBootOK(r)); // ffp r.setHeader(0x10000004); Assert.assertEquals("isBootOK fpp",false,CbusMessage.isBootOK(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootOK fpf",false,CbusMessage.isBootOK(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootOK ppf",false,CbusMessage.isBootOK(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootOK pff",false,CbusMessage.isBootOK(r)); // pff r.setHeader(0x10000004); r.setElement(0,1); Assert.assertEquals("isBootOK ppp",true,CbusMessage.isBootOK(r)); // ppp } @Test public void testisBootDataOK() { CanReply r = new CanReply(1); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootDataOK fff",false,CbusMessage.isBootDataOK(r)); // false false false r.setElement(0,1); Assert.assertEquals("isBootDataOK ffp",false,CbusMessage.isBootDataOK(r)); // ffp r.setHeader(0x10000005); Assert.assertEquals("isBootDataOK fpp",false,CbusMessage.isBootDataOK(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootDataOK fpf",false,CbusMessage.isBootDataOK(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootDataOK ppf",false,CbusMessage.isBootDataOK(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootDataOK pff",false,CbusMessage.isBootDataOK(r)); // pff r.setHeader(0x10000005); r.setElement(0,1); Assert.assertEquals("isBootDataOK ppp",true,CbusMessage.isBootDataOK(r)); // ppp } @Test public void testisBootOutOfRange() { CanReply r = new CanReply(1); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootOutOfRange fff",false,CbusMessage.isBootOutOfRange(r)); // false false false r.setElement(0,1); Assert.assertEquals("isBootOutOfRange ffp",false,CbusMessage.isBootOutOfRange(r)); // ffp r.setHeader(0x10000004); Assert.assertEquals("isBootOutOfRange fpp",false,CbusMessage.isBootOutOfRange(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootOutOfRange fpf",false,CbusMessage.isBootOutOfRange(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootOutOfRange ppf",false,CbusMessage.isBootOutOfRange(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootOutOfRange pff",false,CbusMessage.isBootOutOfRange(r)); // pff r.setHeader(0x10000004); r.setElement(0,3); Assert.assertEquals("isBootOutOfRange ppp",true,CbusMessage.isBootOutOfRange(r)); // ppp } @Test public void testisBootDataOutOfRange() { CanReply r = new CanReply(1); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootDataOutOfRange fff",false,CbusMessage.isBootDataOutOfRange(r)); // false false false r.setElement(0,1); Assert.assertEquals("isBootDataOutOfRange ffp",false,CbusMessage.isBootDataOutOfRange(r)); // ffp r.setHeader(0x10000004); Assert.assertEquals("isBootDataOutOfRange fpp",false,CbusMessage.isBootDataOutOfRange(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootDataOutOfRange fpf",false,CbusMessage.isBootDataOutOfRange(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootDataOutOfRange ppf",false,CbusMessage.isBootDataOutOfRange(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootDataOutOfRange pff",false,CbusMessage.isBootDataOutOfRange(r)); // pff r.setHeader(0x10000005); r.setElement(0,3); Assert.assertEquals("isBootDataOutOfRange ppp",true,CbusMessage.isBootDataOutOfRange(r)); // ppp } @Test public void testisBootConfirm() { CanReply r = new CanReply(1); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootConfirm fff",false,CbusMessage.isBootConfirm(r)); // false false false r.setElement(0,2); Assert.assertEquals("isBootConfirm ffp",false,CbusMessage.isBootConfirm(r)); // ffp r.setHeader(0x10000004); Assert.assertEquals("isBootConfirm fpp",false,CbusMessage.isBootConfirm(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootConfirm fpf",false,CbusMessage.isBootConfirm(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootConfirm ppf",false,CbusMessage.isBootConfirm(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootConfirm pff",false,CbusMessage.isBootConfirm(r)); // pff r.setHeader(0x10000004); r.setElement(0,2); Assert.assertEquals("isBootConfirm ppp",true,CbusMessage.isBootConfirm(r)); // ppp } @Test public void testisBootDevId() { CanReply r = new CanReply(7); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootDevId fff",false,CbusMessage.isBootDevId(r)); // false false false r.setElement(0,2); Assert.assertEquals("isBootDevId ffp",false,CbusMessage.isBootDevId(r)); // ffp r.setHeader(0x10000004); Assert.assertEquals("isBootDevId fpp",false,CbusMessage.isBootDevId(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootDevId fpf",false,CbusMessage.isBootDevId(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootDevId ppf",false,CbusMessage.isBootDevId(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootDevId pff",false,CbusMessage.isBootDevId(r)); // pff r.setHeader(0x10000004); r.setElement(0,5); Assert.assertEquals("isBootDevId ppp",true,CbusMessage.isBootDevId(r)); // ppp } @Test public void testisBootBootId() { CanReply r = new CanReply(5); r.setExtended(false); r.setElement(0,7); Assert.assertEquals("isBootBootId fff",false,CbusMessage.isBootId(r)); // false false false r.setElement(0,2); Assert.assertEquals("isBootBootId ffp",false,CbusMessage.isBootId(r)); // ffp r.setHeader(0x10000004); Assert.assertEquals("isBootBootId fpp",false,CbusMessage.isBootId(r)); // fpp r.setElement(0,7); Assert.assertEquals("isBootBootId fpf",false,CbusMessage.isBootId(r)); // fpf r.setExtended(true); Assert.assertEquals("isBootBootId ppf",false,CbusMessage.isBootId(r)); // ppf r.setHeader(0x14); Assert.assertEquals("isBootBootId pff",false,CbusMessage.isBootId(r)); // pff r.setHeader(0x10000004); r.setElement(0,6); Assert.assertEquals("isBootBootId ppp",true,CbusMessage.isBootId(r)); // ppp } @BeforeEach public void setUp() { JUnitUtil.setUp(); } @AfterEach public void tearDown() { JUnitUtil.tearDown(); } // private static final Logger log = LoggerFactory.getLogger(CbusMessageTest.class); }