Files
JIMRI/java/test/jmri/managers/ProxyReporterManagerTest.java
2026-06-17 14:00:51 +02:00

112 lines
3.5 KiB
Java

package jmri.managers;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertSame;
import jmri.InstanceManager;
import jmri.Reporter;
import jmri.ReporterManager;
import jmri.jmrix.internal.InternalSystemConnectionMemo;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
/**
* Test the ProxyReporterManager
*
* @author Bob Jacobsen 2003, 2006, 2008
* @author Mark Underwood 2012
* @author Paul Bender 2016
*/
public class ProxyReporterManagerTest extends AbstractProxyManagerTestBase<ProxyReporterManager, Reporter> {
public String getSystemName(String i) {
return "IR" + i;
}
@Test
public void testReporterPutGet() {
// create
Reporter t = l.newReporter(getSystemName("sysName"), "mine");
// check
assertNotNull( t, "real object returned ");
assertSame( t, l.getByUserName("mine"), "user name correct ");
assertSame( t, l.getBySystemName(getSystemName("sysName")), "system name correct ");
}
@Test
public void testTwoNames() {
Reporter ir211 = l.provideReporter("LR211");
Reporter lr211 = l.provideReporter("IR211");
assertNotNull(ir211);
assertNotNull(lr211);
assertNotSame(ir211, lr211);
}
@Test
public void testDefaultNotInternal() {
Reporter lut = l.provideReporter("211");
assertNotNull(lut);
assertEquals("IR211", lut.getSystemName());
}
@Test
public void testProvideUser() {
Reporter l1 = l.provideReporter("211");
l1.setUserName("user 1");
Reporter l2 = l.provideReporter("user 1");
Reporter l3 = l.getReporter("user 1");
assertNotNull(l1);
assertNotNull(l2);
assertNotNull(l3);
assertEquals(l1, l2);
assertEquals(l3, l2);
assertEquals(l1, l3);
Reporter l4 = l.getReporter("JLuser 1");
assertNull(l4);
}
@Test
public void testInstanceManagerIntegration() {
JUnitUtil.resetInstanceManager();
assertNotNull(InstanceManager.getDefault(ReporterManager.class));
JUnitUtil.initReporterManager();
assertInstanceOf( ProxyReporterManager.class, InstanceManager.getDefault(ReporterManager.class));
assertNotNull(InstanceManager.getDefault(ReporterManager.class));
assertNotNull(InstanceManager.getDefault(ReporterManager.class).provideReporter("IR1"));
ReporterManager m = new jmri.jmrix.internal.InternalReporterManager(new InternalSystemConnectionMemo("J", "Juliet"));
InstanceManager.setReporterManager(m);
assertNotNull(InstanceManager.getDefault(ReporterManager.class).provideReporter("JR1"));
assertNotNull(InstanceManager.getDefault(ReporterManager.class).provideReporter("IR2"));
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
// create and register the manager object
ReporterManager irman = InstanceManager.getDefault(ReporterManager.class);
assertInstanceOf( ProxyReporterManager.class, irman,
"ReporterManager is not a ProxyReporterManager");
l = (ProxyReporterManager) irman;
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
}