Files
JIMRI/java/test/jmri/jmrix/can/cbus/CbusEventDataElementsTest.java
2026-06-17 14:00:51 +02:00

177 lines
5.3 KiB
Java

package jmri.jmrix.can.cbus;
import jmri.jmrix.can.CanMessage;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2020
*/
public class CbusEventDataElementsTest {
@Test
public void testCTor() {
Assertions.assertNotNull(t);
}
@Test
public void testSetGet() {
assertEquals(0,t.getNumElements());
t.setNumElements(1);
assertEquals(1,t.getNumElements());
t.setData(1, 79);
assertEquals(79,t.getData(1));
}
@Test
public void testMessageRequest() {
// Long Request
assertEquals("[581] 92 00 02 00 03",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.REQUEST).getToString());
t.setNumElements(3); // does nothing as request event
// Short Request
assertEquals("[581] 9A 00 00 00 05",
t.getCanMessage(1,0,5,CbusEventDataElements.EvState.REQUEST).getToString());
}
@Test
public void testMessageOn() {
// Long On
assertEquals("[581] 90 00 02 00 03",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.ON).getToString());
t.setNumElements(1);
t.setData(1, 0xaa);
// Long On Data1
assertEquals("[581] B0 00 02 00 03 AA",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.ON).getToString());
t.setNumElements(2);
t.setData(2, 0xbb);
// Long On Data2
assertEquals("[581] D0 00 02 00 03 AA BB",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.ON).getToString());
t.setNumElements(3);
t.setData(3, 0xcc);
// Long On Data3
assertEquals("[581] F0 00 02 00 03 AA BB CC",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.ON).getToString());
}
@Test
public void testMessageOff() {
// Long Of
assertEquals("[581] 91 00 02 00 03",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.OFF).getToString());
t.setNumElements(1);
t.setData(1, 0xaa);
// Long Off Data1
assertEquals("[581] B1 00 02 00 03 AA",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.OFF).getToString());
t.setNumElements(2);
t.setData(2, 0xbb);
// Long Off Data2
assertEquals("[581] D1 00 02 00 03 AA BB",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.OFF).getToString());
t.setNumElements(3);
t.setData(3, 0xcc);
// Long Off Data3
assertEquals("[581] F1 00 02 00 03 AA BB CC",
t.getCanMessage(1,2,3,CbusEventDataElements.EvState.OFF).getToString());
}
@Test
public void testGetJmriString(){
assertEquals("+0",CbusEvent.getJmriString(0, 0));
assertEquals("+N123E456",CbusEvent.getJmriString(123, 456));
}
@Test
public void testGetNumElements(){
assertEquals( 0, CbusEvent.getNumEventDataElements(new CanMessage(
new int[]{CbusConstants.CBUS_TON}, 0)) );
assertEquals( 0, CbusEvent.getNumEventDataElements(new CanMessage(
new int[]{CbusConstants.CBUS_ASON, 0x00, 0x00, 0x00, 0x01}, 0)) );
assertEquals( 1, CbusEvent.getNumEventDataElements(new CanMessage(
new int[]{CbusConstants.CBUS_ASON1, 0x00, 0x00, 0x00, 0x01, 0x01}, 0)) );
assertEquals( 2, CbusEvent.getNumEventDataElements(new CanMessage(
new int[]{CbusConstants.CBUS_ASON2, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02}, 0)) );
assertEquals( 2, CbusEvent.getNumEventDataElements(new CanMessage(
new int[]{CbusConstants.CBUS_ARSOF2, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02}, 0)) );
assertEquals( 3, CbusEvent.getNumEventDataElements(new CanMessage(
new int[]{CbusConstants.CBUS_ASON3, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x03}, 0)) );
}
@Test
public void testSetDataFromCanFrame(){
t.setDataFromFrame(new CanMessage(
new int[]{CbusConstants.CBUS_ASOF, 0x00, 0x00, 0x00, 0x01}, 0));
assertEquals( 0, t.getNumElements() );
t.setDataFromFrame(new CanMessage(
new int[]{CbusConstants.CBUS_ASOF1, 0x00, 0x00, 0x00, 0x01, 0xff}, 0));
assertEquals( 1, t.getNumElements() );
assertEquals( 255, t.getData(1) );
t.setDataFromFrame(new CanMessage(
new int[]{CbusConstants.CBUS_ASOF2, 0x00, 0x00, 0x00, 0x01, 0xda, 0xaf}, 0));
assertEquals( 2, t.getNumElements() );
assertEquals( 0xda, t.getData(1) );
assertEquals( 0xaf, t.getData(2) );
t.setDataFromFrame(new CanMessage(
new int[]{CbusConstants.CBUS_ASOF3, 0x00, 0x00, 0x00, 0x01, 0xda, 0xaf, 0xaa}, 0));
assertEquals( 3, t.getNumElements() );
assertEquals( 0xda, t.getData(1) );
assertEquals( 0xaf, t.getData(2) );
assertEquals( 0xaa, t.getData(3) );
}
private CbusEventDataElements t;
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
t = new CbusEventDataElements();
}
@AfterEach
public void tearDown() {
t = null;
JUnitUtil.tearDown();
}
// private static final Logger log = LoggerFactory.getLogger(CbusEventDataElementsTest.class);
}