Files
2026-06-17 14:00:51 +02:00

116 lines
4.2 KiB
Java

package jmri.jmrix.can.cbus.node;
import jmri.util.JUnitAppender;
import jmri.util.JUnitUtil;
import org.junit.Assert;
import org.junit.jupiter.api.*;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2019
*/
public class CbusNodeEventTest {
@Test
public void testCTor() {
CbusNodeEvent t = new CbusNodeEvent(null,0,1,0,0,0);
Assert.assertNotNull("exists",t);
}
@Test
public void testBasicSetGets() {
// short event 7 on node 256, no index, 4 ev vars
CbusNodeEvent t = new CbusNodeEvent(null,0,7,256,-1,4);
Assert.assertNotNull("exists",t);
Assert.assertTrue("outstanding event vars 4",t.getOutstandingVars()== 4 );
Assert.assertTrue("next outstanding event var 1",t.getNextOutstanding()== 1 );
Assert.assertTrue("next outstanding event var 1",t.getParentNn()== 256 );
Assert.assertTrue("index -1",t.getIndex()== -1 );
Assert.assertTrue("getNumEvVars 4",t.getNumEvVars()== 4 );
Assert.assertTrue("EvVars 2 -1",t.getEvVar(2)== -1 );
t.setIndex(2);
Assert.assertTrue("index 2",t.getIndex()== 2 );
int[] newArr = new int[]{1,2,3,4};
t.setEvArr(newArr);
Assert.assertEquals("new Arr string","1, 2, 3, 4",t.getEvVarString() );
Assert.assertTrue("next outstanding 0",t.getNextOutstanding()== 0 );
Assert.assertTrue("EvVars 2 -1",t.getEvVar(2)== 2 );
t.setEvVar(2,255);
Assert.assertTrue("EvVars 2 255",t.getEvVar(2)== 255 );
Assert.assertTrue("defalt no temp name set",t.getTempFcuNodeName().isEmpty() );
t.setTempFcuNodeName("Alonso");
Assert.assertTrue("temp name set",t.getTempFcuNodeName().equals("Alonso") );
t.setEvVar(1,256);
JUnitAppender.assertErrorMessageStartsWith("Event Variable value needs to be less than 255 (oxff)");
}
@Test
public void testEventHexString(){
CbusNodeEvent t = new CbusNodeEvent(null,0,7,256,-1,4);
Assert.assertEquals("4 Ev Vars Unset","FFFFFFFF",t.getHexEvVarString());
t.setEvArr(new int[]{0,0,0,0});
Assert.assertEquals("4 Ev Vars 0000","00000000",t.getHexEvVarString());
t.setEvArr(new int[]{1,2,3,4});
Assert.assertEquals("4 Ev Vars 1234","01020304",t.getHexEvVarString());
t.setEvArr(null);
Assert.assertEquals("4 Ev Vars null","",t.getHexEvVarString());
}
@Test
@SuppressWarnings("unlikely-arg-type") // Makes sures different objects do not pass
public void testNodeEventEquals() {
CbusNodeEvent t = new CbusNodeEvent(null,0,7,256,-1,4);
// t.setEvArr(new int[]{1,2,3,4});
CbusNodeEvent tt = new CbusNodeEvent(null,0,7,256,-1,4);
// tt.setEvArr(new int[]{1,2,3,4});
Assert.assertTrue("Equals t",t.equals(t));
Assert.assertTrue("Equals tt",t.equals(tt));
Assert.assertTrue("Same hashcode tt",t.hashCode()==tt.hashCode());
Assert.assertFalse("Equals Node different",t.equals(new CbusNodeEvent(null,1,7,256,-1,4)));
Assert.assertFalse("Equals Event Different",t.equals(new CbusNodeEvent(null,0,8,256,-1,4)));
Assert.assertFalse("Equals Host different",t.equals(new CbusNodeEvent(null,0,7,257,-1,4)));
Assert.assertFalse("Equals Event Length different",t.equals(new CbusNodeEvent(null,0,7,256,-1,5)));
t.setEvArr(new int[]{1,2,3,4});
tt.setEvArr(new int[]{1,2,3,4});
Assert.assertTrue("Equals ev var 1234",t.equals(tt));
Assert.assertTrue("Same hashcode tt",t.hashCode()==tt.hashCode());
tt.setEvArr(new int[]{1,2,3,5});
Assert.assertFalse("Equals ev var 1235",t.equals(tt));
Assert.assertTrue("Same hashcode tt",t.hashCode()!=tt.hashCode());
Assert.assertFalse("Equals different object",t.equals("Random String"));
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
// private static final Logger log = LoggerFactory.getLogger(CbusNodeEventTest.class);
}