package jmri.jmrix.pricom.downloader; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.*; /** * JUnit tests for the LoaderPane class. * * @author Bob Jacobsen Copyright 2005 */ public class LoaderPaneTest { @Test public void testCreate() { assertNotNull( new LoaderPane() ); } @Test public void testCRC() { LoaderPane p = new LoaderPane(); byte[] bytes = jmri.util.StringUtil.bytesFromHexString("1F 20 63 00 2C 00 00"); p.CRC_block(bytes); assertEquals( 0x38, bytes[bytes.length - 2] & 0xFF, "1st CRC byte msg 1"); assertEquals( 0x71, bytes[bytes.length - 1] & 0xFF, "2nd CRC byte msg 1"); bytes = jmri.util.StringUtil.bytesFromHexString("1F 20 1E 42 6F 6F 74 65 72 20 56 31 2E 30 BC CE"); p.CRC_block(bytes); assertEquals( 0xBC, bytes[bytes.length - 2] & 0xFF, "1st CRC byte msg 2"); assertEquals( 0xCE, bytes[bytes.length - 1] & 0xFF, "2nd CRC byte msg 2"); bytes = jmri.util.StringUtil.bytesFromHexString("1F 1F 1E 20 20 00 00"); p.CRC_block(bytes); assertEquals( 0x0C, bytes[bytes.length - 2] & 0xFF, "1st CRC byte msg 3"); assertEquals( 0xD4, bytes[bytes.length - 1] & 0xFF, "2nd CRC byte msg 3"); bytes = jmri.util.StringUtil.bytesFromHexString("1F 20 1E 47 72 65 65 74 69 6E 67 73 20 66 72 6F 6D 20 74 68 65 20 50 52 49 43 4F 4D 20 44 43 43 20 54 65 73 74 65 72 00 00"); p.CRC_block(bytes); assertEquals( 0x3E, bytes[bytes.length - 2] & 0xFF, "1st CRC byte msg 4"); assertEquals( 0x32, bytes[bytes.length - 1] & 0xFF, "2nd CRC byte msg 4"); bytes = jmri.util.StringUtil.bytesFromHexString("1F 1F 1E 56 65 72 73 69 6F 6E 20 31 2E 34 00 00"); p.CRC_block(bytes); assertEquals( 0x58, bytes[bytes.length - 2] & 0xFF, "1st CRC byte msg 5"); assertEquals( 0x93, bytes[bytes.length - 1] & 0xFF, "2nd CRC byte msg 5"); } @Test public void testIsUploadReady() { LoaderPane p = new LoaderPane(); byte[] bytes = jmri.util.StringUtil.bytesFromHexString("1F 20 63 00 2C 00 00"); assertTrue( p.isUploadReady(bytes), "1st message"); bytes = jmri.util.StringUtil.bytesFromHexString("1F 20 1E 42 6F 6F 74 65 72 20 56 31 2E 30 BC CE"); assertFalse( p.isUploadReady(bytes), "2nd message"); } @Test public void testLength() { LoaderPane p = new LoaderPane(); byte[] bytes = jmri.util.StringUtil.bytesFromHexString("1F 20 63 00 2C 00 00"); assertEquals( 64, p.getDataSize(bytes), "length"); bytes = jmri.util.StringUtil.bytesFromHexString("1F 20 63 00 2D 00 00"); assertEquals( 128, p.getDataSize(bytes), "length"); } @BeforeEach public void setUp() { jmri.util.JUnitUtil.setUp(); } @AfterEach public void tearDown() { jmri.util.JUnitUtil.tearDown(); } }