Files
JIMRI/java/test/jmri/jmrix/openlcb/OlcbThrottleManagerTest.java
T
2026-06-17 14:00:51 +02:00

72 lines
2.0 KiB
Java

package jmri.jmrix.openlcb;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
import jmri.jmrix.can.TestTrafficController;
import org.openlcb.*;
/**
* Tests for the jmri.jmrix.openlcb.OlcbThrottleManager class.
*
* @author Bob Jacobsen Copyright 2008, 2010, 2011
* @author Paul Bender Copyright (C) 2016
*/
public class OlcbThrottleManagerTest extends jmri.managers.AbstractThrottleManagerTestBase {
private static OlcbSystemConnectionMemoScaffold memo;
static Connection connection;
static NodeID nodeID = new NodeID(new byte[]{1, 0, 0, 0, 0, 0});
static java.util.ArrayList<Message> messages;
@Override
@BeforeEach
public void setUp() {
tm = new OlcbThrottleManager(memo);
}
@AfterEach
public void tearDown() {
tm = null;
}
@BeforeAll
@SuppressWarnings("deprecation") // OlcbInterface(NodeID, Connection)
public static void preClassInit() {
JUnitUtil.setUp();
// we need to set up the memo because as a throttle is created in test, a message will be generated
messages = new java.util.ArrayList<>();
connection = new AbstractConnection() {
@Override
public void put(Message msg, Connection sender) {
messages.add(msg);
}
};
memo = new jmri.jmrix.openlcb.OlcbSystemConnectionMemoScaffold();
TestTrafficController tc = new TestTrafficController();
memo.setTrafficController(tc);
memo.setInterface(new OlcbInterface(nodeID, connection) {
@Override
public Connection getOutputConnection() {
return connection;
}
});
}
@AfterAll
public static void postClassTearDown() {
if (memo != null && memo.getInterface() != null ) {
memo.getTrafficController().terminateThreads();
memo.getInterface().dispose();
}
memo = null;
connection = null;
nodeID = null;
JUnitUtil.deregisterBlockManagerShutdownTask();
JUnitUtil.tearDown();
}
}