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

97 lines
2.3 KiB
Java

package jmri.jmrix.loconet;
import java.util.Vector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Test scaffold implementation of LocoNetInterface.
* Use an object of this type as a LnTrafficController in tests.
*
* @author Bob Jacobsen Copyright (C) 2001, 2006
*/
public class LocoNetInterfaceScaffold extends LnTrafficController {
public LocoNetInterfaceScaffold() {
}
public LocoNetInterfaceScaffold(LocoNetSystemConnectionMemo adaptermemo) {
super(adaptermemo);
}
// override some LnTrafficController methods for test purposes
@Override
public boolean status() {
return true;
}
/**
* Record LocoNet messages sent, provide access for making sure they are OK.
*/
public Vector<LocoNetMessage> outbound = new Vector<>(); // public OK here, so long as this is a test class
public void clearReceivedMessages() {
outbound = new Vector<>();
}
@Override
public void sendLocoNetMessage(LocoNetMessage m) {
log.debug("sendLocoNetMessage [{}]", m);
// save a copy
outbound.addElement(m);
// we don't return an echo so that the processing before the echo can be
// separately tested
}
@Override
public boolean isXmtBusy() {
return false;
}
// test control member functions
/**
* Forward a message that came from unit under test.
*/
void forwardMessage(int i) {
sendTestMessage(outbound.elementAt(i));
}
/**
* Forward a message to the listeners, e.g. test receipt
*/
public void sendTestMessage(LocoNetMessage m) {
// forward a test message to LocoNetListeners
log.debug("sendTestMessage [{}]", m);
notify(m);
}
/**
* Check number of listeners, used for testing dispose().
*/
public int numListeners() {
return listeners.size();
}
/**
* Get listeners, used for testing dispose().
*/
public Vector<LocoNetListener> getListeners() {
return listeners;
}
/**
* Resets the outbound message log.
* {@inheritDoc }
*/
@Override
public void resetStatistics() {
outbound.clear();
super.resetStatistics();
}
private static final Logger log = LoggerFactory.getLogger(LocoNetInterfaceScaffold.class);
}