Files
JIMRI/java/test/jmri/jmrix/easydcc/EasyDccConsistTest.java
2026-06-17 14:00:51 +02:00

93 lines
3.4 KiB
Java

package jmri.jmrix.easydcc;
import jmri.DccLocoAddress;
import jmri.util.JUnitUtil;
import jmri.InstanceManager;
import jmri.jmrit.consisttool.ConsistPreferencesManager;
import org.junit.Assert;
import org.junit.jupiter.api.*;
/**
* Tests for the jmri.jmrix.nce.EasyDccConsist class
*
* @author Paul Bender Copyright (C) 2016, 2017
*/
public class EasyDccConsistTest extends jmri.implementation.AbstractConsistTestBase {
@Test public void testCtor2() {
// NmraLocoAddress constructor test.
EasyDccConsist c = new EasyDccConsist(new DccLocoAddress(12, true), _memo);
Assert.assertNotNull(c);
}
@Override
@Test public void testSetConsistTypeCS(){
c.setConsistType(jmri.Consist.CS_CONSIST);
Assert.assertEquals("default consist type",jmri.Consist.CS_CONSIST,c.getConsistType());
}
@Test public void checkSizeLimitCS(){
EasyDccConsist c = new EasyDccConsist(5, _memo);
c.setConsistType(jmri.Consist.CS_CONSIST);
Assert.assertEquals("CS Consist Limit",8,c.sizeLimit());
}
@Test public void checkContainsCS(){
EasyDccConsist c = new EasyDccConsist(5, _memo);
c.setConsistType(jmri.Consist.CS_CONSIST);
jmri.DccLocoAddress A = new jmri.DccLocoAddress(200,true);
jmri.DccLocoAddress B = new jmri.DccLocoAddress(250,true);
// nothing added, should be false for all.
Assert.assertFalse("CS Consist Contains",c.contains(A));
Assert.assertFalse("CS Consist Contains",c.contains(B));
// add just A
c.restore(A,true); // use restore here, as it does not send
// any data to the command station
Assert.assertTrue("CS Consist Contains",c.contains(A));
Assert.assertFalse("CS Consist Contains",c.contains(B));
// then add B
c.restore(B,false);
Assert.assertTrue("CS Consist Contains",c.contains(A));
Assert.assertTrue("CS Consist Contains",c.contains(B));
}
@Test public void checkGetLocoDirectionCS(){
EasyDccConsist c = new EasyDccConsist(5, _memo);
c.setConsistType(jmri.Consist.CS_CONSIST);
jmri.DccLocoAddress A = new jmri.DccLocoAddress(200,true);
jmri.DccLocoAddress B = new jmri.DccLocoAddress(250,true);
c.restore(A,true); // use restore here, as it does not send
// any data to the command station
c.restore(B,false); // reverse direction.
Assert.assertTrue("Direction in CS Consist",c.getLocoDirection(A));
Assert.assertFalse("Direction in CS Consist",c.getLocoDirection(B));
}
private EasyDccSystemConnectionMemo _memo;
@BeforeEach
@Override
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.resetProfileManager();
JUnitUtil.initRosterConfigManager();
InstanceManager.setDefault(ConsistPreferencesManager.class,new ConsistPreferencesManager());
_memo = new EasyDccSystemConnectionMemo("E", "EasyDCC Test");
_memo.setEasyDccTrafficController(new EasyDccTrafficControlScaffold(_memo));
jmri.InstanceManager.setDefault(jmri.CommandStation.class, new EasyDccCommandStation(_memo));
c = new EasyDccConsist(5, _memo);
}
@AfterEach
@Override
public void tearDown() {
_memo.getTrafficController().terminateThreads();
_memo = null;
c = null;
JUnitUtil.tearDown();
}
}