Rename TestGraphDBOperation to TestableGraphDBOperation and add JavaDocs.
diff --git a/src/test/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImplTest.java b/src/test/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImplTest.java
index 498c533..19a6d2e 100644
--- a/src/test/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImplTest.java
+++ b/src/test/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImplTest.java
@@ -8,7 +8,7 @@
import java.util.List;
import net.floodlightcontroller.linkdiscovery.LinkInfo;
-import net.floodlightcontroller.linkdiscovery.internal.TestGraphDBOperation.TestPortObject;
+import net.floodlightcontroller.linkdiscovery.internal.TestableGraphDBOperation.TestPortObject;
import net.floodlightcontroller.routing.Link;
import net.onrc.onos.ofcontroller.core.INetMapStorage.DM_OPERATION;
import net.onrc.onos.ofcontroller.linkdiscovery.ILinkStorage;
@@ -40,7 +40,7 @@
private static GraphDBConnection conn;
// Mock GraphDBOperation (mocks port-related methods only)
- private static TestGraphDBOperation ope;
+ private static TestableGraphDBOperation ope;
/**
* Setup code called before each tests.
@@ -55,7 +55,7 @@
EasyMock.expect(GraphDBConnection.getInstance((String)EasyMock.anyObject())).andReturn(conn).anyTimes();
PowerMock.replay(GraphDBConnection.class);
- ope = new TestGraphDBOperation();
+ ope = new TestableGraphDBOperation();
PowerMock.expectNew(GraphDBOperation.class, (GraphDBConnection)EasyMock.anyObject()).andReturn(ope).anyTimes();
PowerMock.replay(GraphDBOperation.class);
diff --git a/src/test/java/net/floodlightcontroller/linkdiscovery/internal/TestGraphDBOperation.java b/src/test/java/net/floodlightcontroller/linkdiscovery/internal/TestableGraphDBOperation.java
similarity index 96%
rename from src/test/java/net/floodlightcontroller/linkdiscovery/internal/TestGraphDBOperation.java
rename to src/test/java/net/floodlightcontroller/linkdiscovery/internal/TestableGraphDBOperation.java
index 5a957ec..79dab76 100644
--- a/src/test/java/net/floodlightcontroller/linkdiscovery/internal/TestGraphDBOperation.java
+++ b/src/test/java/net/floodlightcontroller/linkdiscovery/internal/TestableGraphDBOperation.java
@@ -31,8 +31,15 @@
import net.onrc.onos.util.GraphDBOperation;
import net.onrc.onos.util.IDBConnection;
-public class TestGraphDBOperation extends GraphDBOperation {
- protected static Logger log = LoggerFactory.getLogger(TestGraphDBOperation.class);
+/**
+ * Mock class of GraphDBOperation which provides additional setter to construct a graph for test.
+ * This object simply caches parameters set up by override interfaces and reflect them when commit().
+ * *ForTest() methods are exempt from cache, parameters through those methods are reflected soon.
+ * @author Naoki Shiota
+ *
+ */
+public class TestableGraphDBOperation extends GraphDBOperation {
+ protected static Logger log = LoggerFactory.getLogger(TestableGraphDBOperation.class);
protected List<TestSwitchObject> switches;
protected List<TestPortObject> ports;
@@ -66,7 +73,6 @@
public TestSwitchObject() {
type = "switch";
- state = "ACTIVE";
ports = new ArrayList<IPortObject>();
portsToAdd = new ArrayList<IPortObject>();
@@ -180,6 +186,7 @@
private Short number;
private Integer port_state;
private ISwitchObject sw;
+
private List<IPortObject> linkedPorts;
private List<IDeviceObject> devices;
private List<IFlowEntry> inflows,outflows;
@@ -187,6 +194,7 @@
private String stateToUpdate,typeToUpdate,descToUpdate;
private Short numberToUpdate;
private Integer port_stateToUpdate;
+
private List<IPortObject> linkedPortsToAdd;
private List<IPortObject> linkedPortsToRemove;
private List<IDeviceObject> devicesToAdd;
@@ -195,7 +203,6 @@
public TestPortObject() {
type = "port";
- state = "ACTIVE";
linkedPorts = new ArrayList<IPortObject>();
linkedPortsToAdd = new ArrayList<IPortObject>();
@@ -353,6 +360,8 @@
private List<IPortObject> portsToRemove;
public TestDeviceObject() {
+ type = "device";
+
ports = new ArrayList<IPortObject>();
portsToAdd = new ArrayList<IPortObject>();
portsToRemove = new ArrayList<IPortObject>();
@@ -397,6 +406,8 @@
public void addSwitchForTest(ISwitchObject sw) { switches.add(sw); }
public void addPortForTest(IPortObject port) { ports.add(port); }
+
+ // Override methods
@Override
@JsonProperty("state")
@Property("state")
@@ -479,6 +490,8 @@
private List<IFlowEntry> flowsToRemove;
public TestFlowPath() {
+ type = "flow";
+
entries = new ArrayList<IFlowEntry>();
flowsToAdd = new ArrayList<IFlowEntry>();
flowsToRemove = new ArrayList<IFlowEntry>();
@@ -737,6 +750,8 @@
private IPortObject inportToUpdate,outportToUpdate;
public TestFlowEntry() {
+ type = "flow_entry";
+
clearUncommitedData();
}
@@ -962,7 +977,7 @@
}
- public TestGraphDBOperation() {
+ public TestableGraphDBOperation() {
super(EasyMock.createNiceMock(GraphDBConnection.class));
switches = new ArrayList<TestSwitchObject>();
@@ -1027,6 +1042,10 @@
// this.*ForTest() methods below are supposed to be used for creation of test topology.
+ /**
+ * Create new empty TestSwitchObject.
+ * @return New TestSwitchObject
+ */
public TestSwitchObject createNewSwitchForTest() {
TestSwitchObject sw = new TestSwitchObject();
switches.add(sw);
@@ -1034,9 +1053,9 @@
}
/**
- *
- * @param dpid
- * @return
+ * Create new TestSwitchObject with specific DPID.
+ * @param dpid DPID to be set
+ * @return New TestSwitchObject
*/
public TestSwitchObject createNewSwitchForTest(String dpid) {
for(TestSwitchObject sw_loop : switches) {
@@ -1055,12 +1074,22 @@
return sw;
}
+ /**
+ * Create new empty TestPortObject.
+ * @return New TestPortObject
+ */
public TestPortObject createNewPortForTest() {
TestPortObject port = new TestPortObject();
ports.add(port);
return port;
}
+ /**
+ * Create new TestPortObject with specific DPID and port number.
+ * @param dpid DPID to be set
+ * @param number Port number to be set
+ * @return New TestPortObject
+ */
public TestPortObject createNewPortForTest(String dpid, Short number) {
TestSwitchObject sw = null;
@@ -1084,23 +1113,39 @@
}
}
+ /**
+ * Link a TestPortObject to other TestPortObject.
+ * @param src TestPortObjecgt of source port.
+ * @param dst TestPortObjecgt of destination port.
+ */
public void setLinkBetweenPortsForTest(TestPortObject src, TestPortObject dst) {
src.addLinkedPortForTest(dst);
- //dst.addLinkedPortForTest(src);
}
-
+
+ /**
+ * Create new empty TestDeviceObject.
+ * @return New TestDeviceObject
+ */
public TestDeviceObject createNewDeviceForTest() {
TestDeviceObject dev = new TestDeviceObject();
return dev;
}
+ /**
+ * Create new empty TestFlowPathObject.
+ * @return New TestFlowPathObject
+ */
public TestFlowPath createNewFlowPathForTest() {
TestFlowPath path = new TestFlowPath();
paths.add(path);
return path;
}
+ /**
+ * Create new empty TestFlowEntryObject.
+ * @return New TestFlowEntryObject
+ */
public TestFlowEntry createNewFlowEntryForTest() {
TestFlowEntry entry = new TestFlowEntry();
entries.add(entry);