122 lines
4.0 KiB
Java
122 lines
4.0 KiB
Java
package jmri.jmrix.roco.z21;
|
|
|
|
import jmri.Reporter;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
* This class provides tests for the Z21ReporterManager's ability to create
|
|
* Z21CanReporter objects.
|
|
*
|
|
* @author Paul Bender Copyright (C) 2016
|
|
**/
|
|
|
|
public class Z21ReporterManagerCanTest extends jmri.managers.AbstractReporterMgrTestBase {
|
|
|
|
private Z21SystemConnectionMemo memo;
|
|
private Z21InterfaceScaffold tc;
|
|
|
|
@Override
|
|
public String getSystemName(String i) {
|
|
return "ZR" + i;
|
|
}
|
|
|
|
@Test
|
|
public void testAutomaticCreateFromCanReply(){
|
|
Z21ReporterManager zr = (Z21ReporterManager) l;
|
|
byte msg[]={(byte)0x0E,(byte)0x00,(byte)0xC4,(byte)0x00,(byte)0xcd,(byte)0xab,(byte)0x01,(byte)0x00,(byte)0x01,(byte)0x11,(byte)0x01,(byte)0x00,(byte)0x00,(byte)0x00};
|
|
Z21Reply reply = new Z21Reply(msg,14);
|
|
Assert.assertNull("No reporter before message",zr.getReporter("ZRabcd:1"));
|
|
jmri.util.ThreadingUtil.runOnLayout( () -> { zr.reply(reply); });
|
|
JUnitUtil.waitFor( ()-> { return zr.getReporter("ZRABCD:1") != null; },"wait for reporter creation");
|
|
Assert.assertNotNull("Reporter Created via message",zr.getReporter("ZRABCD:1"));
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
public void testProvideName() {
|
|
// create
|
|
Reporter t = l.provide("ZRABCD:1");
|
|
// check
|
|
Assert.assertTrue("real object returned ", t != null);
|
|
Assert.assertEquals("system name correct ", t,l.getBySystemName("ZRABCD:1"));
|
|
}
|
|
|
|
@Test
|
|
public void testDefaultSystemNameLowerCase() {
|
|
// create
|
|
Reporter t = l.provideReporter("ZRabcd:1");
|
|
// check
|
|
Assert.assertNotNull("real object returned ", t);
|
|
Assert.assertEquals("system name same input correct ", t,l.getBySystemName("ZRabcd:1"));
|
|
Assert.assertEquals("system name same value correct ", t,l.getBySystemName("ZRABCD:1"));
|
|
}
|
|
|
|
@Test
|
|
public void testDefaultSystemMixedDigit() {
|
|
// create
|
|
Reporter t = l.provideReporter("ZRa1c3:5");
|
|
// check
|
|
Assert.assertNotNull("real object returned ", t);
|
|
Assert.assertEquals("system name same input correct ", t,l.getBySystemName("ZRa1c3:5"));
|
|
Assert.assertEquals("system name same value correct ", t,l.getBySystemName("ZRA1C3:5"));
|
|
}
|
|
|
|
@Test
|
|
public void testDefaultSystemMixedCase() {
|
|
// create
|
|
Reporter t = l.provideReporter("ZRaBcD:5");
|
|
// check
|
|
Assert.assertNotNull("real object returned ", t);
|
|
Assert.assertEquals("system name same input correct", t, l.getBySystemName("ZRaBcD:5"));
|
|
Assert.assertEquals("system name opposite input correct", t, l.getBySystemName("ZRAbCd:5"));
|
|
Assert.assertEquals("system name same all lower", t, l.getBySystemName("ZRabcd:5"));
|
|
Assert.assertEquals("system name same all upper", t, l.getBySystemName("ZRABCD:5"));
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
@Disabled("No test for manager-specific system name validation at present")
|
|
public void testMakeSystemNameWithNoPrefixNotASystemName() {}
|
|
|
|
@Test
|
|
@Override
|
|
@Disabled("No test for manager-specific system name validation at present")
|
|
public void testMakeSystemNameWithPrefixNotASystemName() {}
|
|
|
|
@BeforeEach
|
|
@Override
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
jmri.util.JUnitUtil.initDefaultUserMessagePreferences();
|
|
memo = new Z21SystemConnectionMemo();
|
|
tc = new Z21InterfaceScaffold();
|
|
memo.setTrafficController(tc);
|
|
memo.setRocoZ21CommandStation(new RocoZ21CommandStation());
|
|
l = new Z21ReporterManager(memo);
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown(){
|
|
l = null;
|
|
tc.terminateThreads();
|
|
memo = null;
|
|
tc = null;
|
|
JUnitUtil.clearShutDownManager(); // clears "Writing IdTags" from DefaultIdTagManager
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
@Override
|
|
protected String getNameToTest1() {
|
|
return "ABCD:1";
|
|
}
|
|
|
|
@Override
|
|
protected String getNameToTest2() {
|
|
return "ABCD:2";
|
|
}
|
|
|
|
}
|