package jmri.jmrix.lenz.hornbyelite;
import jmri.jmrix.SystemConnectionMemoTestBase;
import jmri.jmrix.lenz.*;
import jmri.util.JUnitUtil;
import org.junit.Assert;
import org.junit.jupiter.api.*;
import org.mockito.Mockito;
/**
* EliteXNetSystemConnectionMemoTest.java
*
* Test for the jmri.jmrix.lenz.EliteXNetSystemConnectionMemo class
*
* @author Paul Bender
*/
public class EliteXNetSystemConnectionMemoTest extends SystemConnectionMemoTestBase {
private XNetTrafficController tc;
@Test
@Override
public void testCtor() {
Assert.assertNotNull(scm);
Assert.assertNotNull(scm.getXNetTrafficController());
Assert.assertEquals(tc,scm.getXNetTrafficController());
// While we are constructing the memo, we should also set the
// SystemMemo parameter in the traffic controller.
Mockito.verify(tc).setSystemConnectionMemo(scm);
}
@Test
public void testXNetTrafficControllerSetCtor() {
XNetTrafficController tc2 = Mockito.mock(XNetTrafficController.class);
HornbyEliteCommandStation cs = Mockito.mock(HornbyEliteCommandStation.class);
Mockito.when(tc2.getCommandStation()).thenReturn(cs);
Assert.assertNotNull(scm);
// the default constructor does not set the traffic controller
Assert.assertNotEquals(tc2, scm.getXNetTrafficController());
// so we need to do this ourselves.
scm.setXNetTrafficController(tc2);
Assert.assertNotNull(scm.getXNetTrafficController());
Assert.assertEquals(tc2,scm.getXNetTrafficController());
// and while we're doing that, we should also set the SystemMemo
// parameter in the traffic controller.
Mockito.verify(tc2).setSystemConnectionMemo(scm);
}
@Override
@Test
public void testProvidesConsistManager() {
scm.setCommandStation(scm.getXNetTrafficController().getCommandStation());
Assert.assertFalse(scm.provides(jmri.ConsistManager.class));
}
@BeforeEach
@Override
public void setUp() {
JUnitUtil.setUp();
// infrastructure objects
HornbyEliteCommandStation cs = Mockito.mock(HornbyEliteCommandStation.class);
tc = Mockito.mock(XNetTrafficController.class);
Mockito.when(tc.getCommandStation()).thenReturn(cs);
scm = new EliteXNetSystemConnectionMemo(tc);
scm.setPowerManager(Mockito.mock(XNetPowerManager.class));
scm.setThrottleManager(Mockito.mock(EliteXNetThrottleManager.class));
scm.setSensorManager(Mockito.mock(XNetSensorManager.class));
scm.setLightManager(Mockito.mock(XNetLightManager.class));
scm.setTurnoutManager(Mockito.mock(EliteXNetTurnoutManager.class));
scm.setProgrammerManager(Mockito.mock(XNetProgrammerManager.class));
}
@AfterEach
@Override
public void tearDown() {
scm.dispose();
scm = null;
JUnitUtil.tearDown();
}
}