188 lines
5.5 KiB
Java
188 lines
5.5 KiB
Java
package jmri.implementation;
|
|
|
|
import jmri.NamedBean;
|
|
import jmri.SignalSystem;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
import org.junit.Assert;
|
|
|
|
/**
|
|
* Tests for the DefaultSignalSystem interface implementation
|
|
*
|
|
* @author Bob Jacobsen Copyright (C) 2009
|
|
*/
|
|
public class DefaultSignalSystemTest {
|
|
|
|
@Test
|
|
public void testCtor() {
|
|
DefaultSignalSystem dss = new DefaultSignalSystem("sys", "user");
|
|
Assert.assertNotNull(dss);
|
|
}
|
|
|
|
@Test
|
|
public void testOneAspectOneProperty() {
|
|
SignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.setProperty("Stop", "Speed", 0);
|
|
|
|
Assert.assertEquals(0, t.getProperty("Stop", "Speed"));
|
|
}
|
|
|
|
@Test
|
|
public void testTwoAspectOneProperty() {
|
|
SignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.setProperty("Stop", "Speed", 0);
|
|
t.setProperty("Clear", "Speed", 10);
|
|
|
|
Assert.assertEquals("Stop", 0, t.getProperty("Stop", "Speed"));
|
|
Assert.assertEquals("Clear", 10, t.getProperty("Clear", "Speed"));
|
|
}
|
|
|
|
@Test
|
|
public void testTwoAspectTwoProperties() {
|
|
SignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.setProperty("Stop", "Speed", 0);
|
|
t.setProperty("Clear", "Speed", 10);
|
|
t.setProperty("Stop", "Biff", "ffiB");
|
|
t.setProperty("Clear", "Biff", "beef");
|
|
|
|
Assert.assertEquals("Stop", 0, t.getProperty("Stop", "Speed"));
|
|
Assert.assertEquals("Clear", 10, t.getProperty("Clear", "Speed"));
|
|
Assert.assertEquals("Stop", "ffiB", t.getProperty("Stop", "Biff"));
|
|
Assert.assertEquals("Clear", "beef", t.getProperty("Clear", "Biff"));
|
|
}
|
|
|
|
@Test
|
|
public void testGetAspects() {
|
|
SignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.setProperty("Stop", "Speed", 0);
|
|
t.setProperty("Approach", "Speed", 5);
|
|
t.setProperty("Clear", "Speed", 10);
|
|
|
|
java.util.Enumeration<String> e = t.getAspects();
|
|
|
|
Assert.assertEquals("Stop", e.nextElement());
|
|
Assert.assertEquals("Approach", e.nextElement());
|
|
Assert.assertEquals("Clear", e.nextElement());
|
|
|
|
Assert.assertTrue(!e.hasMoreElements());
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGetNullProperties() {
|
|
SignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.setProperty("Stop", "Speed", 0);
|
|
t.setProperty("Approach", "Speed", 5);
|
|
|
|
Assert.assertEquals("Stop", null, t.getProperty("Stop", "None"));
|
|
Assert.assertEquals("Clear", null, t.getProperty("Clear", "Speed"));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testCheckAspect() {
|
|
SignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.setProperty("Stop", "Speed", 0);
|
|
t.setProperty("Approach", "Speed", 5);
|
|
|
|
Assert.assertTrue("Stop", t.checkAspect("Stop"));
|
|
Assert.assertFalse("Clear", t.checkAspect("Clear"));
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGetKeys() {
|
|
SignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.setProperty("Stop", "A", 0);
|
|
t.setProperty("Approach", "C", 5);
|
|
t.setProperty("Clear", "B", 10);
|
|
|
|
java.util.Enumeration<String> e = t.getKeys();
|
|
|
|
Assert.assertEquals("A", e.nextElement());
|
|
Assert.assertEquals("C", e.nextElement());
|
|
Assert.assertEquals("B", e.nextElement());
|
|
|
|
Assert.assertTrue(!e.hasMoreElements());
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGetKeysOverlap() {
|
|
SignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.setProperty("Stop", "A", 0);
|
|
t.setProperty("Approach", "C", 5);
|
|
t.setProperty("Approach", "A", 5);
|
|
t.setProperty("Approach", "B", 5);
|
|
t.setProperty("Clear", "B", 10);
|
|
|
|
java.util.Enumeration<String> e = t.getKeys();
|
|
|
|
Assert.assertEquals("A", e.nextElement());
|
|
Assert.assertEquals("C", e.nextElement());
|
|
Assert.assertEquals("B", e.nextElement());
|
|
|
|
Assert.assertTrue(!e.hasMoreElements());
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testDefaults() {
|
|
DefaultSignalSystem t = new DefaultSignalSystem("sys", "user");
|
|
|
|
t.loadDefaults();
|
|
|
|
Assert.assertTrue("Clear", t.checkAspect("Clear"));
|
|
Assert.assertTrue("Approach", t.checkAspect("Approach"));
|
|
Assert.assertTrue("Stop", t.checkAspect("Stop"));
|
|
|
|
Assert.assertEquals("Stop Speed", "0", t.getProperty("Stop", "Speed"));
|
|
Assert.assertEquals("Approach Speed", "30", t.getProperty("Approach", "Speed"));
|
|
Assert.assertEquals("Clear Speed", "60", t.getProperty("Clear", "Speed"));
|
|
|
|
java.util.Enumeration<String> e = t.getAspects();
|
|
Assert.assertEquals("Stop", e.nextElement());
|
|
Assert.assertEquals("Approach", e.nextElement());
|
|
Assert.assertEquals("Clear", e.nextElement());
|
|
Assert.assertTrue("Aspects", !e.hasMoreElements());
|
|
|
|
e = t.getKeys();
|
|
Assert.assertEquals("Speed", e.nextElement());
|
|
Assert.assertTrue("Keys", !e.hasMoreElements());
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testGetState() {
|
|
DefaultSignalSystem dss = new DefaultSignalSystem("sys", "user");
|
|
Assert.assertEquals(NamedBean.INCONSISTENT, dss.getState());
|
|
}
|
|
|
|
@Test
|
|
public void testSetState() {
|
|
DefaultSignalSystem dss = new DefaultSignalSystem("sys", "user");
|
|
dss.setState(NamedBean.UNKNOWN);
|
|
// verify getState did not change
|
|
Assert.assertEquals(NamedBean.INCONSISTENT, dss.getState());
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
}
|