186 lines
8.2 KiB
Java
186 lines
8.2 KiB
Java
package jmri;
|
|
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
/**
|
|
* Tests for the BlockManager class.
|
|
* <p>
|
|
* Based upon a stub by Bob Jacobsen Copyright (C) 2006
|
|
*
|
|
* @author Bob Coleman Copyright 2012
|
|
* @author Bob Jacobsen Copyright 2014
|
|
*/
|
|
public class BlockManagerTest {
|
|
|
|
@Test
|
|
public void testCreate1() {
|
|
// original create with systemname and username
|
|
Block b1 = InstanceManager.getDefault( BlockManager.class).createNewBlock("SystemName1", "UserName1");
|
|
assertNotNull(b1);
|
|
assertEquals( "SystemName1", b1.getSystemName(), "system name");
|
|
assertEquals( "UserName1", b1.getUserName(), "user name");
|
|
}
|
|
|
|
@Test
|
|
public void testCreate2() {
|
|
// original create with systemname and empty username
|
|
Block b1 = InstanceManager.getDefault( BlockManager.class).createNewBlock("SystemName2", "");
|
|
assertNotNull(b1);
|
|
assertEquals( "SystemName2", b1.getSystemName(), "system name");
|
|
assertEquals( "", b1.getUserName(), "user name");
|
|
}
|
|
|
|
@Test
|
|
public void testCreate3() {
|
|
// original create with no systemname and a username
|
|
Block b1 = InstanceManager.getDefault( BlockManager.class).createNewBlock("UserName3");
|
|
assertNotNull(b1);
|
|
assertEquals( "IB:AUTO:0001", b1.getSystemName(), "system name");
|
|
assertEquals( "UserName3", b1.getUserName(), "user name");
|
|
}
|
|
|
|
@Test
|
|
public void testCreate4() {
|
|
// original create with no systemname and an empty username
|
|
Block b1 = InstanceManager.getDefault( BlockManager.class).createNewBlock("");
|
|
assertNotNull(b1);
|
|
assertEquals( "IB:AUTO:0001", b1.getSystemName(), "system name");
|
|
assertEquals( "", b1.getUserName(), "user name");
|
|
}
|
|
|
|
@Test
|
|
public void testNameIncrement() {
|
|
// original create with no systemname and an empty username
|
|
Block b1 = InstanceManager.getDefault( BlockManager.class).createNewBlock(null);
|
|
assertNotNull(b1);
|
|
assertEquals( "IB:AUTO:0001", b1.getSystemName(), "system name 1");
|
|
assertNull( b1.getUserName(), "user name 1");
|
|
|
|
Block b2 = InstanceManager.getDefault( BlockManager.class).createNewBlock(null);
|
|
assertNotNull(b2);
|
|
assertEquals( "IB:AUTO:0002", b2.getSystemName(), "system name 2");
|
|
assertNull( b2.getUserName(), "user name 2");
|
|
|
|
// and b1 still OK
|
|
assertEquals( "IB:AUTO:0001", b1.getSystemName(), "system name 1");
|
|
assertNull( b1.getUserName(), "user name 1");
|
|
}
|
|
|
|
@Test
|
|
public void testProvideWorksTwice() {
|
|
// original create with no systemname and an empty username
|
|
Block b1 = InstanceManager.getDefault( BlockManager.class).provideBlock("IB12");
|
|
assertEquals( "IB12", b1.getSystemName(), "system name 12");
|
|
assertNull(b1.getUserName());
|
|
b1 = InstanceManager.getDefault( BlockManager.class).provideBlock("!!");
|
|
assertNotNull(b1);
|
|
assertEquals( "IB:AUTO:0001", b1.getSystemName(), "system name !!");
|
|
assertEquals( "!!", b1.getUserName(), "user name !!");
|
|
}
|
|
|
|
@Test
|
|
public void testGet1() {
|
|
// original create with no systemname and a username
|
|
Block b1 = InstanceManager.getDefault( BlockManager.class).createNewBlock("UserName4");
|
|
assertNotNull(b1);
|
|
assertEquals( "IB:AUTO:0001", b1.getSystemName(), "system name");
|
|
assertEquals( "UserName4", b1.getUserName(), "user name");
|
|
|
|
Block bget1 = InstanceManager.getDefault( BlockManager.class).getBlock("UserName4");
|
|
assertNotNull(bget1);
|
|
assertEquals( "IB:AUTO:0001", bget1.getSystemName(), "get system name by user name");
|
|
assertEquals( "UserName4", bget1.getUserName(), "get user name by user name");
|
|
|
|
Block bget2 = InstanceManager.getDefault( BlockManager.class).getBlock("IB:AUTO:0001");
|
|
assertNotNull(bget2);
|
|
assertEquals( "IB:AUTO:0001", bget2.getSystemName(), "get system name by system name");
|
|
assertEquals( "UserName4", bget2.getUserName(), "get user name by system name");
|
|
}
|
|
|
|
@Test
|
|
public void testProvide1() {
|
|
// original create with no systemname and a username
|
|
Block b1 = InstanceManager.getDefault( BlockManager.class).createNewBlock("UserName5");
|
|
assertNotNull(b1);
|
|
assertEquals( "IB:AUTO:0001", b1.getSystemName(), "system name");
|
|
assertEquals( "UserName5", b1.getUserName(), "user name");
|
|
|
|
Block bprovide1 = InstanceManager.getDefault( BlockManager.class).provideBlock("UserName5");
|
|
assertEquals( "IB:AUTO:0001", bprovide1.getSystemName(), "provide system name by user name");
|
|
assertEquals( "UserName5", bprovide1.getUserName(), "provide user name by user name");
|
|
|
|
Block bprovide2 = InstanceManager.getDefault( BlockManager.class).provideBlock("IB:AUTO:0001");
|
|
assertEquals( "IB:AUTO:0001", bprovide2.getSystemName(), "provide system name by system name");
|
|
assertEquals( "UserName5", bprovide2.getUserName(), "provide user name by system name");
|
|
|
|
// auto create with prefixed systemname and no username
|
|
Block bprovide3 = InstanceManager.getDefault( BlockManager.class).provideBlock("IBSystemName6");
|
|
assertEquals( "IBSystemName6", bprovide3.getSystemName(), "provide system name by user name");
|
|
assertNull( bprovide3.getUserName(), "provide user name by user name");
|
|
|
|
// auto create with accepted systemname and no username
|
|
Block bprovide4 = InstanceManager.getDefault( BlockManager.class).provideBlock("IB:AUTO:0002");
|
|
assertEquals( "IB:AUTO:0002", bprovide4.getSystemName(), "provide system name by system name");
|
|
assertNull( bprovide4.getUserName(), "provide user name by system name");
|
|
}
|
|
|
|
@Test
|
|
public void testAutoSkip1() {
|
|
Block bautoskip1 = InstanceManager.getDefault( BlockManager.class).createNewBlock("IB:AUTO:0007", "UserName7");
|
|
assertNotNull(bautoskip1);
|
|
assertEquals( "IB:AUTO:0007", bautoskip1.getSystemName(), "autoskip system name");
|
|
assertEquals( "UserName7", bautoskip1.getUserName(), "autoskip user name");
|
|
|
|
Block bautoskip2 = InstanceManager.getDefault( BlockManager.class).provideBlock("UserName8");
|
|
assertEquals( "IB:AUTO:0008", bautoskip2.getSystemName(), "autoskip system name skip");
|
|
assertEquals( "UserName8", bautoskip2.getUserName(), "autoskip user name skip");
|
|
}
|
|
|
|
@Test
|
|
public void testBlockSpeed1() {
|
|
Block bspeed1 = InstanceManager.getDefault( BlockManager.class).provideBlock("UserName9");
|
|
assertEquals( "IB:AUTO:0001", bspeed1.getSystemName(), "block speed system name");
|
|
assertEquals( "UserName9", bspeed1.getUserName(), "block speed user name");
|
|
assertEquals( "Use Global Normal", bspeed1.getBlockSpeed(), "block speed");
|
|
}
|
|
|
|
@Test
|
|
public void testDefaultSpeed1() {
|
|
assertEquals( "Normal", InstanceManager.getDefault( BlockManager.class).getDefaultSpeed(),
|
|
"default block speed");
|
|
|
|
// expect this to throw exception because no signal map loaded by default
|
|
|
|
Exception exc = assertThrows(IllegalArgumentException.class, () -> {
|
|
InstanceManager.getDefault( BlockManager.class).setDefaultSpeed("Faster"); });
|
|
assertEquals( "Value of requested default block speed \"Faster\" is not valid", exc.getMessage());
|
|
|
|
jmri.util.JUnitAppender.assertWarnMessage("attempting to get speed for invalid name: 'Faster'");
|
|
|
|
assertDoesNotThrow( () ->
|
|
InstanceManager.getDefault( BlockManager.class).setDefaultSpeed("Normal"));
|
|
assertEquals( "Normal", InstanceManager.getDefault( BlockManager.class).getDefaultSpeed(),
|
|
"block speed back to normal");
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.deregisterBlockManagerShutdownTask();
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
}
|