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

204 lines
8.1 KiB
Java

package jmri.managers;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import jmri.IdTag;
import jmri.InstanceManager;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
/**
*
* @author Paul Bender Copyright (C) 2017
*/
public class DefaultRailComManagerTest extends DefaultIdTagManagerTest {
@Override
@Test
public void testIdTagCreation() {
DefaultIdTagManager m = (DefaultIdTagManager)l;
IdTag t = m.createNewIdTag("RD0413276BC1", "Test Tag");
assertNotNull( t, "IdTag is not null");
}
@Override
@Test
public void testIdTagNames() {
DefaultIdTagManager m = (DefaultIdTagManager)l;
IdTag t = m.createNewIdTag("RD0413276BC1", "Test Tag");
assertEquals( "RD0413276BC1", t.getSystemName(),
"IdTag system name is 'RD0413276BC1'");
assertEquals( "Test Tag", t.getUserName(), "IdTag user name is 'Test Tag'");
assertEquals( "0413276BC1", t.getTagID(), "IdTag tag id is '0413276BC1'");
}
@Override
@Test
public void testIdTagSingleRetrieval() {
DefaultIdTagManager m = (DefaultIdTagManager)l;
IdTag t = m.newIdTag("RD0413276BC1", "Test Tag");
assertNotNull( t, "Returned IdTag is not null");
assertNotNull( m.getBySystemName("RD0413276BC1"), "Get by system name is not null");
assertNotNull( m.getByUserName("Test Tag"), "Get by user name is not null");
assertNotNull( m.getByTagID("0413276BC1"), "Get by tag id is not null");
assertNotNull( m.getIdTag("RD0413276BC1"), "Get IdTag using system name is not null");
assertNotNull( m.getIdTag("Test Tag"), "Get IdTag using user name is not null");
assertNotNull( m.getIdTag("0413276BC1"), "Get IdTag using tag id is not null");
var tagBySysName = m.getBySystemName("RD0413276BC1");
assertNotNull(tagBySysName);
assertTrue( t.getSystemName().equals(tagBySysName.getSystemName()),
"Matching IdTag returned from manager by system name");
var tagByUserName = m.getByUserName("Test Tag");
assertNotNull(tagByUserName);
var tagUserName = t.getUserName();
assertNotNull(tagUserName);
assertTrue( tagUserName.equals(tagByUserName.getUserName()),
"Matching IdTag returned from manager by user name");
var tagById = m.getByTagID("0413276BC1");
assertNotNull(tagById);
assertTrue( t.getTagID().equals(tagById.getTagID()),
"Matching IdTag returned from manager by tag id");
assertNull( m.getBySystemName("RD99999999"),
"Null Object returned from manager by system name");
assertNull( m.getBySystemName("This doesn't exist"),
"Null Object returned from manager by user name");
assertNull( m.getBySystemName("XXXXXXXXXX"),
"Null Object returned from manager by tagID");
}
@Override
@Test
public void testIdTagMultiRetrieval() {
DefaultIdTagManager m = (DefaultIdTagManager)l;
IdTag t1 = m.newIdTag("RD0413276BC1", "Test Tag 1");
IdTag t2 = m.newIdTag("RD0413275FCA", "Test Tag 2");
assertFalse( t1.equals(t2), "Created IdTags are different");
assertTrue( t1.equals(m.getBySystemName("RD0413276BC1")),
"Matching IdTag returned from manager by system name");
assertTrue( t1.equals(m.getByUserName("Test Tag 1")),
"Matching IdTag returned from manager by user name");
assertTrue( t1.equals(m.getByTagID("0413276BC1")),
"Matching IdTag returned from manager by tag id");
assertTrue( t1.equals(m.getIdTag("RD0413276BC1")),
"Matching IdTag returned from manager via getRfidTag using system name");
assertTrue( t1.equals(m.getIdTag("Test Tag 1")),
"Matching IdTag returned from manager via getRfidTag using user name");
assertTrue( t1.equals(m.getIdTag("0413276BC1")),
"Matching IdTag returned from manager via getRfidTag using tag id");
assertFalse( t2.equals(m.getBySystemName("RD0413276BC1")),
"Non-matching IdTag returned from manager by system name");
assertFalse( t2.equals(m.getByUserName("Test Tag 1")),
"Non-matching IdTag returned from manager by user name");
assertFalse( t2.equals(m.getByTagID("0413276BC1")),
"Non-matching IdTag returned from manager by tag id");
assertFalse( t2.equals(m.getIdTag("RD0413276BC1")),
"Non-matching IdTag returned from manager via getRfidTag using system name");
assertFalse( t2.equals(m.getIdTag("Test Tag 1")),
"Non-matching IdTag returned from manager via getRfidTag using user name");
assertFalse( t2.equals(m.getIdTag("0413276BC1")),
"Non-matching IdTag returned from manager via getRfidTag using tag id");
}
@Override
@Test
public void testIdTagProviderCreate() {
DefaultIdTagManager m = (DefaultIdTagManager)l;
IdTag t = m.provideIdTag("0413276BC1");
assertNotNull( t, "IdTag is not null");
assertEquals( "RD0413276BC1", t.getSystemName(), "IdTag System Name is 'RD0413276BC1'");
assertEquals( "RD0413276BC1", t.getDisplayName(), "IdTag display name is system name");
assertEquals( "0413276BC1", t.getTagID(), "IdTag tag ID is 0413276BC1");
assertNull( t.getUserName(), "IdTag user name is blank");
t.setUserName("Test Tag");
assertNotNull( t.getUserName(), "IdTag user name is not blank");
assertEquals( "Test Tag", t.getDisplayName(), "IdTag display name is user name");
}
@Test
@Override
public void testIdTagProviderGet() {
DefaultIdTagManager m = (DefaultIdTagManager)l;
IdTag t1 = m.newIdTag("RD0413276BC1", "Test Tag 1");
IdTag t2 = m.newIdTag("RD0413275FCA", "Test Tag 2");
assertFalse( t1.equals(t2), "Created IdTags are different");
assertTrue( t1.equals(m.provideIdTag("RD0413276BC1")),
"Matching IdTag returned via provideTag by system name");
assertTrue( t1.equals(m.provideIdTag("Test Tag 1")),
"Matching IdTag returned via provideTag by user name");
assertTrue( t1.equals(m.provideIdTag("0413276BC1")),
"Matching IdTag returned via provideTag by tag ID");
assertFalse( t1.equals(m.provideIdTag("RD0413275FCA")),
"Non-matching IdTag returned via provideTag by system name");
assertFalse( t1.equals(m.provideIdTag("Test Tag 2")),
"Non-matching IdTag returned via provideTag by user name");
assertFalse( t1.equals(m.provideIdTag("0413275FCA")),
"Non-matching IdTag returned via provideTag by tag ID");
}
@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
@Override
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.resetInstanceManager();
JUnitUtil.initInternalTurnoutManager();
JUnitUtil.initInternalLightManager();
JUnitUtil.initInternalSensorManager();
InstanceManager.setDefault(jmri.IdTagManager.class,new ProxyIdTagManager());
l = getManager();
}
@AfterEach
@Override
public void tearDown() {
l = null;
InstanceManager.getDefault(jmri.IdTagManager.class).dispose();
JUnitUtil.deregisterBlockManagerShutdownTask();
JUnitUtil.tearDown();
}
// Override init method so as not to load file
// nor register shutdown task during tests.
@Override
protected DefaultIdTagManager getManager() {
return new DefaultRailComManager() {
@Override
public void init() {
}
};
}
}