package eu.hgross.blaubot.mock;
import eu.hgross.blaubot.core.IBlaubotAdapter;
import eu.hgross.blaubot.core.IBlaubotConnection;
import eu.hgross.blaubot.core.acceptor.ConnectionMetaDataDTO;
import eu.hgross.blaubot.core.acceptor.IBlaubotConnectionAcceptor;
import eu.hgross.blaubot.core.acceptor.IBlaubotIncomingConnectionListener;
import eu.hgross.blaubot.core.acceptor.IBlaubotListeningStateListener;
import eu.hgross.blaubot.core.acceptor.discovery.IBlaubotBeaconStore;
/**
* Mockup object for acceptors.
* You can mock a new incoming connection via mockNewConnection(...)
*
* @author Henning Gross {@literal (mail.to@henning-gross.de)}
*
*/
public class BlaubotConnectionAcceptorMock implements IBlaubotConnectionAcceptor {
private boolean started;
private IBlaubotListeningStateListener listeningStateListener;
private IBlaubotIncomingConnectionListener acceptorListener;
private AdapterMock adapter;
private IBlaubotBeaconStore beaconStore;
public BlaubotConnectionAcceptorMock(AdapterMock adapterMock) {
this.adapter = adapterMock;
}
public void mockNewConnection(IBlaubotConnection connection) {
if(this.acceptorListener != null)
this.acceptorListener.onConnectionEstablished(connection);
}
@Override
public void setBeaconStore(IBlaubotBeaconStore beaconStore) {
this.beaconStore = beaconStore;
}
@Override
public IBlaubotAdapter getAdapter() {
return adapter;
}
@Override
public void startListening() {
if(started)
stopListening();
started = true;
if(listeningStateListener != null)
listeningStateListener.onListeningStarted(this);
}
@Override
public void stopListening() {
started = false;
if(listeningStateListener !=null)
listeningStateListener.onListeningStopped(this);
}
@Override
public boolean isStarted() {
return this.started;
}
@Override
public void setListeningStateListener(IBlaubotListeningStateListener stateListener) {
this.listeningStateListener = stateListener;
}
@Override
public void setAcceptorListener(IBlaubotIncomingConnectionListener acceptorListener) {
this.acceptorListener = acceptorListener;
}
@Override
public ConnectionMetaDataDTO getConnectionMetaData() {
return new ConnectionMetaDataDTO() {
{
getMetaData().put(CONNECTION_TYPE_KEY, "ACCEPTORMOCK");
}
};
}
}