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); }