147 lines
4.8 KiB
Java
147 lines
4.8 KiB
Java
package jmri.managers;
|
|
|
|
import java.io.IOException;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
import static org.junit.jupiter.api.Assertions.fail;
|
|
|
|
import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.SignalSystem;
|
|
import jmri.implementation.SignalSystemTestUtil;
|
|
import jmri.jmrix.internal.InternalSystemConnectionMemo;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
* Tests for the jmri.managers.DefaultSignalSystemManager class.
|
|
*
|
|
* @author Bob Jacobsen Copyright 2009
|
|
*/
|
|
public class DefaultSignalSystemManagerTest extends AbstractManagerTestBase<jmri.SignalSystemManager,jmri.SignalSystem> {
|
|
|
|
@Test
|
|
public void testGetListOfNames() {
|
|
DefaultSignalSystemManager d = (DefaultSignalSystemManager)l;
|
|
List<String> list = d.getListOfNames();
|
|
assertTrue(list.contains("basic"));
|
|
assertTrue(list.contains("AAR-1946"));
|
|
assertTrue(list.contains("SPTCO-1960"));
|
|
}
|
|
|
|
@Test
|
|
public void testSearchOrder() throws IOException {
|
|
try { // need try-finally to ensure junk deleted from user area
|
|
SignalSystemTestUtil.createMockSystem();
|
|
|
|
// check that mock (test directory) system is present
|
|
DefaultSignalSystemManager d = new DefaultSignalSystemManager(InstanceManager.getDefault(InternalSystemConnectionMemo.class));
|
|
List<String> list = d.getListOfNames();
|
|
assertTrue(list.contains(SignalSystemTestUtil.getMockSystemName()));
|
|
|
|
} finally {
|
|
SignalSystemTestUtil.deleteMockSystem();
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testLoadBasicAspects() {
|
|
DefaultSignalSystemManager d = (DefaultSignalSystemManager)l;
|
|
d.makeBean("basic");
|
|
}
|
|
|
|
@Test
|
|
public void testLoad() {
|
|
DefaultSignalSystemManager d = (DefaultSignalSystemManager)l;
|
|
|
|
// Remove all beans in the manager
|
|
Set<SignalSystem> set = new HashSet<>(d.getNamedBeanSet());
|
|
set.forEach((b) -> {
|
|
d.deregister(b);
|
|
});
|
|
|
|
assertTrue(d.getNamedBeanSet().isEmpty());
|
|
|
|
d.load();
|
|
assertTrue(d.getNamedBeanSet().size() >= 2);
|
|
|
|
jmri.util.JUnitAppender.suppressWarnMessageStartsWith("getSystemNameList");
|
|
}
|
|
|
|
@Test
|
|
public void testUniqueNames() {
|
|
DefaultSignalSystemManager d = (DefaultSignalSystemManager)l;
|
|
List<String> list = d.getListOfNames();
|
|
for (int i = 0; i < list.size(); i++) {
|
|
for (int j = 0; j < list.size(); j++) {
|
|
if ((i != j) && (list.get(i).equals(list.get(j)))) {
|
|
fail("Found " + list.get(i) + " at " + i + " and " + j);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testUniqueSystemNames() {
|
|
DefaultSignalSystemManager d = (DefaultSignalSystemManager)l;
|
|
List<String> list = d.getListOfNames();
|
|
for (int i = 0; i < list.size(); i++) {
|
|
SignalSystem si = d.getSystem(list.get(i));
|
|
assertNotNull(si);
|
|
for (int j = 0; j < list.size(); j++) {
|
|
SignalSystem sj = d.getSystem(list.get(j));
|
|
assertNotNull(sj);
|
|
if ((i != j) && (si.getSystemName().equals(sj.getSystemName()))) {
|
|
fail("Found system name " + si.getSystemName() + " at " + i + " and " + j);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testUniqueUserNames() {
|
|
DefaultSignalSystemManager d = (DefaultSignalSystemManager)l;
|
|
List<String> list = d.getListOfNames();
|
|
for (int i = 0; i < list.size(); i++) {
|
|
SignalSystem si = d.getSystem(list.get(i));
|
|
Assertions.assertNotNull(si);
|
|
for (int j = 0; j < list.size(); j++) {
|
|
SignalSystem sj = d.getSystem(list.get(j));
|
|
Assertions.assertNotNull(sj);
|
|
String siUserName = si.getUserName();
|
|
if ((i != j) && (siUserName != null) && (siUserName.equals(sj.getUserName()))) {
|
|
fail("Found user name " + si.getUserName() + " at " + i + " and " + j);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
@Disabled("No manager-specific system name validation at present")
|
|
public void testMakeSystemNameWithNoPrefixNotASystemName() {}
|
|
|
|
@Test
|
|
@Override
|
|
@Disabled("No manager-specific system name validation at present")
|
|
public void testMakeSystemNameWithPrefixNotASystemName() {}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
l = new DefaultSignalSystemManager(InstanceManager.getDefault(InternalSystemConnectionMemo.class));
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
l = null;
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
}
|