97 lines
2.3 KiB
Java
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);
|
|
|
|
}
|