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);