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

142 lines
4.5 KiB
Java

package jmri.jmrix.can.cbus;
import java.io.File;
import jmri.Light;
import jmri.jmrix.can.CanSystemConnectionMemo;
import jmri.jmrix.can.cbus.eventtable.CbusEventBeanData;
import jmri.jmrix.can.cbus.eventtable.CbusEventTableDataModel;
import jmri.jmrix.can.cbus.node.CbusNodeTableDataModel;
import jmri.jmrix.can.cbus.eventtable.CbusTableEvent;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.io.TempDir;
import static org.junit.jupiter.api.Assertions.*;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Steve Young Copyright (C) 2019
*/
public class CbusNameServiceTest {
@Test
public void testCTor() {
CbusNameService t = new CbusNameService();
assertNotNull(t);
}
@Test
public void testgetEventName() {
CbusNameService t = new CbusNameService();
assertEquals( "", t.getEventName(123,456) );
CbusEventTableDataModel m = new CbusEventTableDataModel(memo, 2,CbusEventTableDataModel.MAX_COLUMN);
jmri.InstanceManager.setDefault(CbusEventTableDataModel.class,m );
CbusTableEvent tabEv = m.provideEvent(123, 456);
tabEv.setName("Event Name");
tabEv.setComment("Comment");
assertEquals("Event Name",t.getEventName(123,456));
m.skipSaveOnDispose();
m.dispose();
}
@Test
public void testgetEventNodeString() {
Assertions.assertNotNull(memo);
CbusNameService t = new CbusNameService(memo);
assertEquals("NN:123 EN:456 ",t.getEventNodeString(123,456));
assertEquals("EN:456 ",t.getEventNodeString(0,456));
CbusEventTableDataModel m = memo.get(CbusConfigurationManager.class)
.provide(CbusEventTableDataModel.class);
memo.get(CbusPreferences.class).setNodeBackgroundFetchDelay(0);
CbusNodeTableDataModel nodeModel = memo.get(CbusConfigurationManager.class)
.provide(CbusNodeTableDataModel.class);
nodeModel.provideNodeByNodeNum(123).setUserName("Node Name");
nodeModel.provideNodeByNodeNum(69).setUserName("My Node");
m.provideEvent(123, 456).setName("Event Name");
m.provideEvent(123, 456).setComment("Event Comment");
m.provideEvent(69, 741).setName("John Smith");
m.provideEvent(69, 741).setComment("My Comment");
m.provideEvent(0, 357).setName("Alonso");
m.provideEvent(0, 357).setComment("My Second Comment");
assertEquals("NN:123 Node Name EN:456 Event Name ",t.getEventNodeString(123,456));
assertEquals("NN:98 EN:76 ",t.getEventNodeString(98,76));
assertEquals("NN:69 My Node EN:741 John Smith ",t.getEventNodeString(69,741));
assertEquals("EN:357 Alonso ",t.getEventNodeString(0,357));
m.skipSaveOnDispose();
m.dispose();
nodeModel.dispose();
}
@Test
public void testgetJmriBeans(){
Assertions.assertNotNull(memo);
CbusNameService t = new CbusNameService(memo);
CbusEventBeanData bd = t.getJmriBeans(0, 4, CbusEventDataElements.EvState.ON);
assertEquals( "", bd.toString() );
CbusEventTableDataModel evModel = memo.get(CbusConfigurationManager.class)
.provide(CbusEventTableDataModel.class);
CbusLightManager lm = new CbusLightManager(memo);
Light lightA = lm.provideLight("+4");
lightA.setUserName("MyLightA");
evModel.provideEvent(0, 4).appendOnOffBean(lightA, true, CbusEvent.EvState.ON);
evModel.provideEvent(0, 4).appendOnOffBean(lightA, false, CbusEvent.EvState.OFF);
bd = t.getJmriBeans(0, 4, CbusEvent.EvState.ON);
assertEquals("Light On: MyLightA",bd.toString());
bd = t.getJmriBeans(0, 4, CbusEvent.EvState.OFF);
assertEquals("Light Off: MyLightA",bd.toString());
evModel.skipSaveOnDispose();
evModel.dispose();
lm.dispose();
}
private CanSystemConnectionMemo memo = null;
@BeforeEach
public void setUp(@TempDir File tempDir) throws java.io.IOException {
JUnitUtil.setUp();
JUnitUtil.resetInstanceManager();
JUnitUtil.resetProfileManager( new jmri.profile.NullProfile( tempDir));
memo = new CanSystemConnectionMemo();
memo.setProtocol(jmri.jmrix.can.CanConfigurationManager.MERGCBUS);
}
@AfterEach
public void tearDown() {
Assertions.assertNotNull(memo);
memo.dispose();
memo = null;
JUnitUtil.tearDown();
}
// private static final org.slf4j.LoggerLogger log = org.slf4j.LoggerLoggerFactory.getLogger(CbusNameServiceTest.class);
}