Files
JIMRI/java/test/jmri/jmrix/can/cbus/CbusDccProgrammerTest.java
2026-06-17 14:00:51 +02:00

128 lines
4.0 KiB
Java

package jmri.jmrix.can.cbus;
import jmri.Programmer;
import jmri.ProgrammingMode;
import jmri.jmrix.can.CanSystemConnectionMemo;
import jmri.jmrix.can.TrafficControllerScaffold;
import jmri.util.JUnitUtil;
import org.junit.Assert;
import org.junit.jupiter.api.*;
/**
*
* @author Paul Bender Copyright (C) 2017
* @author Andrew Crosland Copyright (C) 2021
*/
public class CbusDccProgrammerTest extends jmri.jmrix.AbstractProgrammerTest {
@Test
@Override
public void testDefault() {
Assert.assertEquals("Check Default", ProgrammingMode.DIRECTBITMODE,
programmer.getMode());
Assert.assertEquals("Check Default", ProgrammingMode.DIRECTBITMODE,
programmer2.getMode());
}
@Override
@Test
public void testDefaultViaBestMode() {
Assert.assertEquals("Check Default", ProgrammingMode.DIRECTBITMODE,
((CbusDccProgrammer)programmer).getBestMode());
Assert.assertEquals("Check Default", ProgrammingMode.DIRECTBITMODE,
((CbusDccProgrammer)programmer2).getBestMode());
}
@Test
public void testDispose() {
Assertions.assertEquals(2, tcis.numListeners(),"2 tcis listeners");
programmer.dispose();
programmer2.dispose();
Assertions.assertEquals(0, tcis.numListeners(),"0 tcis listeners");
}
/*
@Test
public void testSetGetMode() {
programmer.setMode(ProgrammingMode.REGISTERMODE);
Assert.assertEquals("Check mode matches set", ProgrammingMode.REGISTERMODE,
programmer.getMode());
}
@Test
public void testWriteSequence() throws jmri.ProgrammerException {
p.writeCV("4", 5, testListener);
Assert.assertEquals("listeners", 0, tc.numListeners());
Assert.assertEquals("sent count", 1, tc.outbound.size());
Assert.assertEquals("content 1", "[78] 96 00 03 04 05",
tc.outbound.get(0).toString());
// no reply from CAN and listener replies immediately,
// contrast read test below
Assert.assertTrue("listener invoked", testListener.getRcvdInvoked()>0);
Assert.assertEquals("status", 0, testListener.getRcvdStatus());
}
@Test
public void testReadSequence() throws jmri.ProgrammerException {
p.readCV("4", testListener);
Assert.assertEquals("listeners", 0, tc.numListeners());
Assert.assertEquals("sent count", 1, tc.outbound.size());
Assert.assertEquals("content 1", "[78] 71 00 03 04",
tc.outbound.get(0).toString());
Assert.assertTrue("listener not invoked", testListener.getRcvdInvoked()==0);
// pretend reply from CAN
int[] frame = new int[]{0x97, 0, 3, 5};
CanReply f = new CanReply(frame);
p.reply(f);
Assert.assertTrue("listener invoked", testListener.getRcvdInvoked()>0);
Assert.assertEquals("status", 0, testListener.getRcvdStatus());
Assert.assertEquals("value", 5, testListener.getRcvdValue());
}
*/
protected Programmer programmer2;
private TrafficControllerScaffold tcis = null;
private CanSystemConnectionMemo memo = null;
@Override
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
tcis = new TrafficControllerScaffold();
memo = new CanSystemConnectionMemo();
memo.setTrafficController(tcis);
programmer = new CbusDccProgrammer(tcis);
programmer2 = new CbusDccProgrammer(tcis);
}
@Override
@AfterEach
public void tearDown() {
programmer.dispose();
programmer2.dispose();
programmer2 = null;
programmer = null;
Assertions.assertNotNull(tcis);
tcis.terminateThreads();
tcis = null;
Assertions.assertNotNull(memo);
memo.dispose();
memo = null;
JUnitUtil.tearDown();
}
// private static final Logger log = LoggerFactory.getLogger(CbusDccProgrammerTest.class);
}