129 lines
5.2 KiB
Java
129 lines
5.2 KiB
Java
package jmri.jmrix;
|
|
|
|
import java.awt.GraphicsEnvironment;
|
|
|
|
import jmri.jmrix.loconet.LnTrafficController;
|
|
import jmri.jmrix.loconet.LocoNetSystemConnectionMemo;
|
|
import jmri.jmrix.mqtt.MqttSystemConnectionMemo;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
import org.junit.Assume;
|
|
|
|
/**
|
|
* Test SystemConnectionMemoManager.
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
* @author Daniel Bergqvist Copyright (C) 2022
|
|
*/
|
|
public class SystemConnectionMemoManagerTest {
|
|
|
|
private LnTrafficController lnis1;
|
|
private LnTrafficController lnis2;
|
|
private LocoNetSystemConnectionMemo lnMemo1;
|
|
private LocoNetSystemConnectionMemo lnMemo2;
|
|
private MqttSystemConnectionMemo mqttMemo;
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
SystemConnectionMemoManager t = new SystemConnectionMemoManager();
|
|
Assert.assertNotNull("exists",t);
|
|
}
|
|
|
|
@Test
|
|
public void testConnectionUtil() {
|
|
LocoNetSystemConnectionMemo myMemo1 =
|
|
SystemConnectionMemoManager.getConnection("L", LocoNetSystemConnectionMemo.class);
|
|
Assert.assertEquals(lnMemo1, myMemo1);
|
|
|
|
myMemo1 = SystemConnectionMemoManager.getConnectionByUserName("LocoNet", LocoNetSystemConnectionMemo.class);
|
|
Assert.assertEquals(lnMemo1, myMemo1);
|
|
|
|
LocoNetSystemConnectionMemo myMemo2 =
|
|
SystemConnectionMemoManager.getConnection("L2", LocoNetSystemConnectionMemo.class);
|
|
Assert.assertEquals(lnMemo2, myMemo2);
|
|
|
|
myMemo2 = SystemConnectionMemoManager.getConnectionByUserName("LocoNet2", LocoNetSystemConnectionMemo.class);
|
|
Assert.assertEquals(lnMemo2, myMemo2);
|
|
|
|
LocoNetSystemConnectionMemo myMemo3 =
|
|
SystemConnectionMemoManager.getConnection("L15", LocoNetSystemConnectionMemo.class);
|
|
Assert.assertNull(myMemo3);
|
|
|
|
myMemo3 = SystemConnectionMemoManager.getConnectionByUserName("L15", LocoNetSystemConnectionMemo.class);
|
|
Assert.assertNull(myMemo3);
|
|
|
|
MqttSystemConnectionMemo myMqttMemo1 =
|
|
SystemConnectionMemoManager.getConnection("M", MqttSystemConnectionMemo.class);
|
|
Assert.assertEquals(mqttMemo, myMqttMemo1);
|
|
|
|
myMqttMemo1 = SystemConnectionMemoManager.getConnectionByUserName("MQTT", MqttSystemConnectionMemo.class);
|
|
Assert.assertEquals(mqttMemo, myMqttMemo1);
|
|
|
|
MqttSystemConnectionMemo myMqttMemo2 =
|
|
SystemConnectionMemoManager.getConnection("L2", MqttSystemConnectionMemo.class);
|
|
// This memo is not found since it's a LocoNet memo, not a Mqtt memo.
|
|
Assert.assertNull(myMqttMemo2);
|
|
|
|
myMqttMemo2 = SystemConnectionMemoManager.getConnectionByUserName("LocoNet2", MqttSystemConnectionMemo.class);
|
|
// This memo is not found since it's a LocoNet memo, not a Mqtt memo.
|
|
Assert.assertNull(myMqttMemo2);
|
|
|
|
MqttSystemConnectionMemo myMqttMemo3 =
|
|
SystemConnectionMemoManager.getConnection("M3", MqttSystemConnectionMemo.class);
|
|
Assert.assertNull(myMqttMemo3);
|
|
|
|
myMqttMemo3 = SystemConnectionMemoManager.getConnectionByUserName("MQTT3", MqttSystemConnectionMemo.class);
|
|
Assert.assertNull(myMqttMemo3);
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.resetInstanceManager();
|
|
JUnitUtil.resetProfileManager();
|
|
JUnitUtil.initConfigureManager();
|
|
JUnitUtil.initInternalTurnoutManager();
|
|
JUnitUtil.initInternalLightManager();
|
|
JUnitUtil.initInternalSensorManager();
|
|
|
|
// The class under test uses LocoNet connections that it pulls from the InstanceManager.
|
|
lnMemo1 = new jmri.jmrix.loconet.LocoNetSystemConnectionMemo("L", "LocoNet");
|
|
lnis1 = new jmri.jmrix.loconet.LocoNetInterfaceScaffold(lnMemo1);
|
|
lnMemo1.setLnTrafficController(lnis1);
|
|
lnMemo1.configureCommandStation(jmri.jmrix.loconet.LnCommandStationType.COMMAND_STATION_DCS100, false, false, false, false, false);
|
|
lnMemo1.configureManagers();
|
|
jmri.InstanceManager.store(lnMemo1, jmri.jmrix.loconet.LocoNetSystemConnectionMemo.class);
|
|
|
|
// The class under test uses LocoNet connections that it pulls from the InstanceManager.
|
|
lnMemo2 = new jmri.jmrix.loconet.LocoNetSystemConnectionMemo("L2", "LocoNet2");
|
|
lnis2 = new jmri.jmrix.loconet.LocoNetInterfaceScaffold(lnMemo2);
|
|
lnMemo2.setLnTrafficController(lnis2);
|
|
lnMemo2.configureCommandStation(jmri.jmrix.loconet.LnCommandStationType.COMMAND_STATION_DCS100, false, false, false, false, false);
|
|
lnMemo2.configureManagers();
|
|
jmri.InstanceManager.store(lnMemo2, jmri.jmrix.loconet.LocoNetSystemConnectionMemo.class);
|
|
|
|
mqttMemo = new MqttSystemConnectionMemo();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
mqttMemo.dispose();
|
|
mqttMemo = null;
|
|
lnMemo1.dispose();
|
|
lnMemo1 = null;
|
|
lnMemo2.dispose();
|
|
lnMemo2 = null;
|
|
lnis1 = null;
|
|
lnis2 = null;
|
|
|
|
JUnitUtil.deregisterBlockManagerShutdownTask();
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
// private static final Logger log = LoggerFactory.getLogger(SystemConnectionMemoManagerTest.class);
|
|
|
|
}
|