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

69 lines
1.8 KiB
Java

/**
* XpaInterfaceScaffold.java
*
* Stands in for the XpaTrafficController class
*
* @author Bob Jacobsen
*/
package jmri.jmrix.xpa;
import java.util.ArrayList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class XpaTrafficControlScaffold extends XpaTrafficController {
public XpaTrafficControlScaffold() {
if (log.isDebugEnabled()) {
log.debug("setting instance: {}", this);
}
}
// override some XpaTrafficController methods for test purposes
@Override
public boolean status() {
return true;
}
/**
* record messages sent, provide access for making sure they are OK
*/
public ArrayList<XpaMessage> outbound = new ArrayList<>(); // public OK here, so long as this is a test class
@Override
public synchronized void sendXpaMessage(XpaMessage m, XpaListener reply) {
if (log.isDebugEnabled()) {
log.debug("sendXpaMessage [{}]", m);
}
// save a copy
outbound.add(m);
// we don't return an echo so that the processing before the echo can be
// separately tested
}
// test control member functions
/**
* forward a message to the listeners, e.g. test receipt
*
* @param m the test message
* @param l the listener to notify
*/
protected void sendTestMessage(XpaMessage m, XpaListener l) {
// forward a test message to NceListeners
if (log.isDebugEnabled()) {
log.debug("sendTestMessage [{}]", m);
}
notifyMessage(m, l);
}
/*
* Check number of listeners, used for testing dispose()
*/
public int numListeners() {
return cmdListeners.size();
}
private static final Logger log = LoggerFactory.getLogger(XpaTrafficControlScaffold.class);
}