blob: 545753dc9fccb9b856956a214baf4c666fbf6354 [file] [log] [blame]
package net.floodlightcontroller.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Future;
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IFloodlightProviderService;
import net.floodlightcontroller.core.IFloodlightProviderService.Role;
import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.debugcounter.IDebugCounterService;
import net.floodlightcontroller.debugcounter.IDebugCounterService.CounterException;
import net.floodlightcontroller.threadpool.IThreadPoolService;
import org.jboss.netty.channel.Channel;
import org.projectfloodlight.openflow.protocol.OFActionType;
import org.projectfloodlight.openflow.protocol.OFCapabilities;
import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
import org.projectfloodlight.openflow.protocol.OFFactory;
import org.projectfloodlight.openflow.protocol.OFMessage;
import org.projectfloodlight.openflow.protocol.OFPortDesc;
import org.projectfloodlight.openflow.protocol.OFPortStatus;
import org.projectfloodlight.openflow.protocol.OFStatsReply;
import org.projectfloodlight.openflow.protocol.OFStatsRequest;
import org.projectfloodlight.openflow.protocol.OFVersion;
import org.projectfloodlight.openflow.types.U64;
/**
* A mock implementation of IFOSwitch we use for {@link OFMessageDamper}
* <p/>
* We need to mock equals() and hashCode() but alas, EasyMock doesn't support
* this. Sigh. And of course this happens to be the interface with the most
* methods.
*
* @author gregor
*/
public class OFMessageDamperMockSwitch implements IOFSwitch {
OFMessage writtenMessage;
FloodlightContext writtenContext;
public OFMessageDamperMockSwitch() {
reset();
}
/* reset this mock. I.e., clear the stored message previously written */
public void reset() {
writtenMessage = null;
writtenContext = null;
}
/* assert that a message was written to this switch and that the
* written message and context matches the expected values
* @param expected
* @param expectedContext
*/
public void assertMessageWasWritten(OFMessage expected,
FloodlightContext expectedContext) {
assertNotNull("No OFMessage was written", writtenMessage);
assertEquals(expected, writtenMessage);
assertEquals(expectedContext, writtenContext);
}
/*
* assert that no message was written
*/
public void assertNoMessageWritten() {
assertNull("OFMessage was written but didn't expect one",
writtenMessage);
assertNull("There was a context but didn't expect one",
writtenContext);
}
/*
* use hashCode() and equals() from Object
*/
@Override
public void write(OFMessage m,
FloodlightContext bc) throws IOException {
assertNull("write() called but already have message", writtenMessage);
assertNull("write() called but already have context", writtenContext);
writtenContext = bc;
writtenMessage = m;
}
@Override
public void write(List<OFMessage> msglist,
FloodlightContext bc) throws IOException {
assertTrue("Unexpected method call", false);
}
// @Override
// public void setFeaturesReply(OFFeaturesReply featuresReply) {
// assertTrue("Unexpected method call", false);
// }
// @Override
// public void setSwitchProperties(OFDescriptionStatistics description) {
// assertTrue("Unexpected method call", false);
// // TODO Auto-generated method stub
// }
@Override
public Collection<OFPortDesc> getEnabledPorts() {
assertTrue("Unexpected method call", false);
return null;
}
@Override
public Collection<Integer> getEnabledPortNumbers() {
assertTrue("Unexpected method call", false);
return null;
}
// @Override
// public OFPhysicalPort getPort(short portNumber) {
// assertTrue("Unexpected method call", false);
// return null;
// }
@Override
public OFPortDesc getPort(String portName) {
assertTrue("Unexpected method call", false);
return null;
}
// @Override
// public void setPort(OFPhysicalPort port) {
// assertTrue("Unexpected method call", false);
// }
// @Override
// public void deletePort(short portNumber) {
// assertTrue("Unexpected method call", false);
// }
// @Override
// public void deletePort(String portName) {
// assertTrue("Unexpected method call", false);
// }
@Override
public Collection<OFPortDesc> getPorts() {
assertTrue("Unexpected method call", false);
return null;
}
// @Override
// public boolean portEnabled(short portName) {
// assertTrue("Unexpected method call", false);
// return false;
// }
@Override
public boolean portEnabled(String portName) {
assertTrue("Unexpected method call", false);
return false;
}
// @Override
// public boolean portEnabled(OFPhysicalPort port) {
// assertTrue("Unexpected method call", false);
// return false;
// }
@Override
public long getId() {
assertTrue("Unexpected method call", false);
return 0;
}
@Override
public String getStringId() {
assertTrue("Unexpected method call", false);
return null;
}
@Override
public Map<Object, Object> getAttributes() {
assertTrue("Unexpected method call", false);
return null;
}
@Override
public Date getConnectedSince() {
assertTrue("Unexpected method call", false);
return null;
}
@Override
public int getNextTransactionId() {
assertTrue("Unexpected method call", false);
return 0;
}
// @Override
// public Future<List<OFStatistics>>
// getStatistics(OFStatisticsRequest request) throws IOException {
// assertTrue("Unexpected method call", false);
// return null;
// }
@Override
public boolean isConnected() {
assertTrue("Unexpected method call", false);
return false;
}
@Override
public void setConnected(boolean connected) {
assertTrue("Unexpected method call", false);
}
@Override
public Role getRole() {
assertTrue("Unexpected method call", false);
return null;
}
// @Override
// public boolean isActive() {
// assertTrue("Unexpected method call", false);
// return false;
// }
// @Override
// public void deliverStatisticsReply(OFMessage reply) {
// assertTrue("Unexpected method call", false);
// }
@Override
public void cancelStatisticsReply(int transactionId) {
assertTrue("Unexpected method call", false);
}
@Override
public void cancelAllStatisticsReplies() {
assertTrue("Unexpected method call", false);
}
@Override
public boolean hasAttribute(String name) {
assertTrue("Unexpected method call", false);
return false;
}
@Override
public Object getAttribute(String name) {
assertTrue("Unexpected method call", false);
return null;
}
@Override
public void setAttribute(String name, Object value) {
assertTrue("Unexpected method call", false);
}
@Override
public Object removeAttribute(String name) {
assertTrue("Unexpected method call", false);
return null;
}
@Override
public void clearAllFlowMods() {
assertTrue("Unexpected method call", false);
}
// @Override
// public boolean updateBroadcastCache(Long entry, Short port) {
// assertTrue("Unexpected method call", false);
// return false;
// }
// @Override
// public Map<Short, Long> getPortBroadcastHits() {
// assertTrue("Unexpected method call", false);
// return null;
// }
// @Override
// public void sendStatsQuery(OFStatisticsRequest request, int xid,
// IOFMessageListener caller)
// throws IOException {
// assertTrue("Unexpected method call", false);
// }
@Override
public void flush() {
assertTrue("Unexpected method call", false);
}
// @Override
// public void deliverOFFeaturesReply(OFMessage reply) {
// // TODO Auto-generated method stub
//
// }
@Override
public void cancelFeaturesReply(int transactionId) {
// TODO Auto-generated method stub
}
// @Override
// public int getBuffers() {
// // TODO Auto-generated method stub
// return 0;
// }
@Override
public Set<OFActionType> getActions() {
// TODO Auto-generated method stub
return null;
}
@Override
public Set<OFCapabilities> getCapabilities() {
// TODO Auto-generated method stub
return null;
}
// @Override
// public byte getTables() {
// // TODO Auto-generated method stub
// return 0;
// }
@Override
public void disconnectSwitch() {
// TODO Auto-generated method stub
}
@Override
public void setChannel(Channel channel) {
// TODO Auto-generated method stub
}
@Override
public int getNumBuffers() {
// TODO Auto-generated method stub
return 0;
}
@Override
public byte getNumTables() {
// TODO Auto-generated method stub
return 0;
}
@Override
public OFDescStatsReply getSwitchDescription() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setOFVersion(OFVersion ofv) {
// TODO Auto-generated method stub
}
@Override
public OFVersion getOFVersion() {
// TODO Auto-generated method stub
return null;
}
@Override
public OFPortDesc getPort(int portNumber) {
// TODO Auto-generated method stub
return null;
}
@Override
public OrderedCollection<PortChangeEvent> processOFPortStatus(OFPortStatus ps) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean portEnabled(int portName) {
// TODO Auto-generated method stub
return false;
}
@Override
public OrderedCollection<PortChangeEvent> comparePorts(Collection<OFPortDesc> ports) {
// TODO Auto-generated method stub
return null;
}
@Override
public OrderedCollection<PortChangeEvent> setPorts(Collection<OFPortDesc> ports) {
// TODO Auto-generated method stub
return null;
}
@Override
public void deliverStatisticsReply(OFMessage reply) {
// TODO Auto-generated method stub
}
@Override
public Future<List<OFStatsReply>> getStatistics(OFStatsRequest<?> request)
throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public void setRole(Role role) {
// TODO Auto-generated method stub
}
@Override
public U64 getNextGenerationId() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setFloodlightProvider(IFloodlightProviderService controller) {
// TODO Auto-generated method stub
}
@Override
public void setThreadPoolService(IThreadPoolService threadPool) {
// TODO Auto-generated method stub
}
@Override
public void setDebugCounterService(IDebugCounterService debugCounter)
throws CounterException {
// TODO Auto-generated method stub
}
@Override
public void startDriverHandshake() {
// TODO Auto-generated method stub
}
@Override
public boolean isDriverHandshakeComplete() {
// TODO Auto-generated method stub
return false;
}
@Override
public void processDriverHandshakeMessage(OFMessage m) {
// TODO Auto-generated method stub
}
@Override
public void setTableFull(boolean isFull) {
// TODO Auto-generated method stub
}
@Override
public OFFactory getFactory() {
// TODO Auto-generated method stub
return null;
}
}