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

137 lines
4.3 KiB
Java

package jmri.jmrix.can.cbus;
import jmri.jmrix.can.CanSystemConnectionMemo;
import jmri.jmrix.can.TrafficControllerScaffold;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2019
*/
public class CbusEventTest {
@Test
public void testCTor() {
CbusEvent t = new CbusEvent(0,1);
assertNotNull(t);
}
@Test
public void testSetandGet() {
CbusEvent t = new CbusEvent(123,456);
assertEquals(123,t.getNn());
assertEquals(456,t.getEn());
assertEquals(CbusEvent.EvState.UNKNOWN,t.getState());
t.setState(CbusEvent.EvState.ON);
assertEquals(CbusEvent.EvState.ON,t.getState());
t.setState(CbusEvent.EvState.OFF);
assertEquals(CbusEvent.EvState.OFF,t.getState());
t.setName("Jon Smith");
assertEquals("Jon Smith",t.getName());
t.setEn(4);
t.setNn(7);
assertEquals(7,t.getNn());
assertEquals(4,t.getEn());
}
@Test
public void testMatches() {
CbusEvent t = new CbusEvent(123,456);
assertFalse(t.matches(123,111));
assertFalse(t.matches(111,456));
assertFalse(t.matches(111,222));
assertTrue(t.matches(123,456));
}
@Test
public void testSending() {
CanSystemConnectionMemo memo = new CanSystemConnectionMemo();
TrafficControllerScaffold tc = new TrafficControllerScaffold();
memo.setTrafficController(tc);
memo.configureManagers();
CbusEvent t = new CbusEvent(123,456);
t.sendOn();
assertEquals("[5f8] 90 00 7B 01 C8" ,
(tc.outbound.elementAt(tc.outbound.size() - 1).toString()) );
t.sendOff();
assertEquals("[5f8] 91 00 7B 01 C8" ,
(tc.outbound.elementAt(tc.outbound.size() - 1).toString()) );
t.sendRequest();
assertEquals("[5f8] 92 00 7B 01 C8" ,
(tc.outbound.elementAt(tc.outbound.size() - 1).toString()) );
CbusEvent ta = new CbusEvent(0,12345);
ta.sendOn();
assertEquals("[5f8] 98 00 00 30 39" ,
(tc.outbound.elementAt(tc.outbound.size() - 1).toString()) );
ta.sendOff();
assertEquals("[5f8] 99 00 00 30 39" ,
(tc.outbound.elementAt(tc.outbound.size() - 1).toString()) );
ta.sendRequest();
assertEquals("[5f8] 9A 00 00 30 39" ,
(tc.outbound.elementAt(tc.outbound.size() - 1).toString()) );
ta.setState(CbusEvent.EvState.ON);
assertEquals(CbusEvent.EvState.ON,ta.getState());
ta.sendEvent(CbusEvent.EvState.TOGGLE);
assertEquals(CbusEvent.EvState.OFF,ta.getState());
ta.sendEvent(CbusEvent.EvState.TOGGLE);
assertEquals(CbusEvent.EvState.ON,ta.getState());
tc.terminateThreads();
memo.dispose();
}
@Test
public void testToString() {
CbusEvent t = new CbusEvent(0,456);
assertEquals("EN:456 ",t.toString());
t.setName("Jon Smith");
assertEquals("EN:456 Jon Smith ",t.toString());
}
@Test
@SuppressWarnings({"unlikely-arg-type", "IncompatibleEquals"}) // CanReply and CanMessage are CanFrame with custom equals
public void testEquals(){
CbusEvent t = new CbusEvent(123,456);
assertTrue(t.equals(new CbusEvent(123,456)));
assertFalse(t.equals(new CbusEvent(0,456)));
assertFalse(t.equals(new CbusEvent(123,0)));
assertFalse(t.equals(new CbusEvent(4,4)));
assertFalse(t.equals("123456"));
}
@Test
public void testHashCode(){
int hash = new CbusEvent(123,456).hashCode();
assertTrue(hash==new CbusEvent(123,456).hashCode());
assertFalse(hash==new CbusEvent(0,456).hashCode());
assertFalse(hash==new CbusEvent(123,0).hashCode());
assertFalse(hash==new CbusEvent(4,4).hashCode());
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
// private static final Logger log = LoggerFactory.getLogger(CbusEventTest.class);
}