Implement serialization/deserialization feature for each Intent classes

Change-Id: I63db34914d8df76d5a000831da1e03e03383e62f
diff --git a/src/test/java/net/onrc/onos/intent/MockNetworkGraph.java b/src/test/java/net/onrc/onos/intent/MockNetworkGraph.java
new file mode 100644
index 0000000..ec0d54f
--- /dev/null
+++ b/src/test/java/net/onrc/onos/intent/MockNetworkGraph.java
@@ -0,0 +1,66 @@
+package net.onrc.onos.intent;
+
+import net.onrc.onos.ofcontroller.networkgraph.AbstractNetworkGraph;
+import net.onrc.onos.ofcontroller.networkgraph.Link;
+import net.onrc.onos.ofcontroller.networkgraph.LinkImpl;
+import net.onrc.onos.ofcontroller.networkgraph.Switch;
+import net.onrc.onos.ofcontroller.networkgraph.SwitchImpl;
+
+public class MockNetworkGraph extends AbstractNetworkGraph {
+	public Switch addSwitch(Long switchId) {
+		SwitchImpl sw = new SwitchImpl(this, switchId);
+		switches.put(sw.getDpid(), sw);
+		return sw;
+
+	}
+
+	public Link addLink(Long srcDpid, Long srcPortNo, Long dstDpid, Long dstPortNo) {
+		return new LinkImpl(
+				this,
+				getSwitch(srcDpid).getPort(srcPortNo),
+				getSwitch(dstDpid).getPort(dstPortNo));
+	}
+
+	public Link[] addBidirectionalLinks(Long srcDpid, Long srcPortNo, Long dstDpid, Long dstPortNo) {
+		Link[] links = new Link[2];
+		links[0] = addLink(srcDpid, srcPortNo, dstDpid, dstPortNo);
+		links[1] = addLink(dstDpid, dstPortNo, srcDpid, srcPortNo);
+
+		return links;
+	}
+	
+	public void createSampleTopology() {
+		// add 10 switches (24 ports switch)
+		for (Long dpid=1L; dpid<10L; dpid++) {
+			SwitchImpl sw = (SwitchImpl) addSwitch(dpid);
+			for (Long j=1L; j<=24L; j++) {
+				sw.addPort(j);
+			}
+		}
+
+		// add loop path
+		addBidirectionalLinks(1L, 1L, 2L, 2L);
+		addBidirectionalLinks(2L, 1L, 3L, 2L);
+		addBidirectionalLinks(3L, 1L, 4L, 2L);
+		addBidirectionalLinks(4L, 1L, 5L, 2L);
+		addBidirectionalLinks(5L, 1L, 6L, 2L);
+		addBidirectionalLinks(6L, 1L, 7L, 2L);
+		addBidirectionalLinks(7L, 1L, 8L, 2L);
+		addBidirectionalLinks(8L, 1L, 9L, 2L);
+		addBidirectionalLinks(9L, 1L, 1L, 2L);
+
+		// add other links
+		addBidirectionalLinks(1L, 3L, 5L, 3L);
+		addBidirectionalLinks(2L, 4L, 5L, 4L);
+		addBidirectionalLinks(2L, 5L, 7L, 5L);
+		addBidirectionalLinks(3L, 6L, 7L, 6L);
+		addBidirectionalLinks(3L, 7L, 8L, 7L);
+		addBidirectionalLinks(3L, 8L, 9L, 8L);
+		addBidirectionalLinks(4L, 9l, 9L, 9L);
+
+		// set capacity of all links to 1000Mbps
+		for (Link link: getLinks()) {
+			((LinkImpl)link).setCapacity(1000.0);
+		}
+	}
+}