Files
JIMRI/java/test/jmri/jmrix/loconet/soundloader/LoaderEngineTest.java
T
2026-06-17 14:00:51 +02:00

127 lines
4.6 KiB
Java

package jmri.jmrix.loconet.soundloader;
import jmri.jmrix.loconet.LocoNetMessage;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
import org.junit.Assert;
/**
* Tests for the jmri.jmrix.loconet.soundloader.LoaderEngine class.
*
* @author Bob Jacobsen Copyright 2001, 2002, 2006
*/
public class LoaderEngineTest {
@Test
public void testGetEraseMessage() {
LoaderEngine l = new LoaderEngine(null);
LocoNetMessage m = l.getEraseMessage();
Assert.assertEquals("contents", "D3 02 01 7F 00 50", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
}
@Test
public void testGetIntMessage() {
LoaderEngine l = new LoaderEngine(null);
LocoNetMessage m = l.getInitMessage();
Assert.assertEquals("contents", "D3 01 00 00 00 2D", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
}
@Test
public void testGetExitMessage() {
LoaderEngine l = new LoaderEngine(null);
LocoNetMessage m = l.getExitMessage();
Assert.assertEquals("contents", "D3 00 00 00 00 2C", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
}
@Test
public void testGetStartWavDataMessage1() {
LoaderEngine l = new LoaderEngine(null);
LocoNetMessage m = l.getStartDataMessage(LoaderEngine.TYPE_WAV, 0x17, 128);
Assert.assertEquals("contents", "D3 04 17 01 00 3E", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
}
@Test
public void testGetStartWavDataMessage2() {
LoaderEngine l = new LoaderEngine(null);
LocoNetMessage m = l.getStartDataMessage(LoaderEngine.TYPE_WAV, 0x17, 512);
Assert.assertEquals("contents", "D3 04 17 02 00 3D", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
}
@Test
public void testGetSendWavDataMessage() {
LoaderEngine l = new LoaderEngine(null);
int[] idata = new int[]{0x17, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4D, 0x75, 0x74, 0x65, 0x2E, 0x77, 0x61, 0x76,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
byte[] data = new byte[idata.length];
for (int i = 0; i < data.length; i++) {
data[i] = (byte) (idata[i] & 0xFF);
}
LocoNetMessage m = l.getSendDataMessage(LoaderEngine.TYPE_WAV, 0x17, data);
Assert.assertEquals("contents", "D3 08 17 28 00 1B 17 80 00 00 00 00 00 00 "
+ "4D 75 74 65 2E 77 61 76 00 00 00 00 00 00 "
+ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
+ "00 00 00 00 0F", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
}
@Test
public void testFullTransfer1() {
LoaderEngine l = new LoaderEngine(null);
int handle = 0x17;
String name = "Mute.wav";
byte[] contents = new byte[128];
for (int i = 0; i < 128; i++) {
contents[i] = (byte) 0x80;
}
LocoNetMessage m;
m = l.initTransfer(LoaderEngine.TYPE_WAV, handle, name, contents);
Assert.assertEquals("contents", "D3 04 17 01 00 3E", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
m = l.nextTransfer();
Assert.assertEquals("contents", "D3 08 17 28 00 1B 17 80 00 00 00 00 00 00 "
+ "4D 75 74 65 2E 77 61 76 00 00 00 00 00 00 "
+ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
+ "00 00 00 00 0F", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
m = l.nextTransfer();
Assert.assertEquals("contents", "D3 08 17 00 01 32 80 80 80 80 80 80 80 80 80 80 "
+ "80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 "
+ "80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 "
+ "80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 "
+ "80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 "
+ "80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 "
+ "80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 "
+ "80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 "
+ "80 80 80 80 80 80 FF", m.toString());
Assert.assertEquals("checksum", true, m.checkParity());
m = l.nextTransfer();
Assert.assertEquals("end", null, m);
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
}