add some tests for LinkStorageImpl
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
index c8ca86f..5ea398b 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
@@ -82,10 +82,12 @@
             	}
             	
             	if (currLinks.contains(vportDst)) {
-            		// TODO: update linkinfo
             		if (op.equals(DM_OPERATION.INSERT) || op.equals(DM_OPERATION.CREATE)) {
             			log.debug("addOrUpdateLink(): failed link exists {} {} src {} dst {}", 
             					new Object[]{op, lt, vportSrc, vportDst});
+            		} else if (op.equals(DM_OPERATION.UPDATE)) {
+                		// TODO: update linkinfo
+            			// GraphDB seems to have no KeyIndex for LinkInfo data
             		}
             	} else {
             		vportSrc.setLinkPort(vportDst);
@@ -165,24 +167,34 @@
         }
 	}
 
-	// TODO: Fix me
 	@Override
 	public List<Link> getLinks(Long dpid, short port) {
 		GraphDBConnection conn = GraphDBConnection.getInstance(this.conf);
-		IPortObject vportSrc, vportDst;
-    	List<Link> links = null;
-    	Link lt;
+		IPortObject vportSrc;
+		
+		List<Link> links = new ArrayList<Link>();
     	
 		vportSrc = conn.utils().searchPort(conn, HexString.toHexString(dpid), port);
 		if (vportSrc != null) {
-			
-     		for (Edge e : vportSrc.asVertex().getEdges(Direction.OUT)) {
-     			if (e.getLabel().equals("link")) {
-     				break;
-     			}
-     		}
+ 			
+			for (Edge e : vportSrc.asVertex().getEdges(Direction.IN)) {
+				if(e.getLabel().equals("link")) {
+					Vertex v = e.getVertex(Direction.OUT);
+					short dst_port = v.getProperty("number");
+					for(Edge e2 : v.getEdges(Direction.IN)) {
+						if(e2.getLabel().equals("on")) {
+							Vertex v2 = e2.getVertex(Direction.OUT);
+							long dst_dpid = HexString.toLong((String) v2.getProperty("dpid"));
+							
+			         		Link lt = new Link(dpid, port, dst_dpid, dst_port);
+			         		links.add(lt);
+						}
+					}
+				}
+			}
 		}
-     	return null;
+		
+     	return links;
 	}
 	
 	@Override
@@ -195,14 +207,28 @@
 
 	@Override
 	public void deleteLinksOnPort(Long dpid, short port) {
-		// TODO Auto-generated method stub
+		List<Link> linksToDelete = getLinks(dpid,port);
 		
+		for(Link l : linksToDelete) {
+			deleteLink(l);
+		}
 	}
 
 	@Override
 	public List<Link> getLinks(String dpid) {
-		// TODO Auto-generated method stub
-		return null;
+		GraphDBConnection conn = GraphDBConnection.getInstance(this.conf);
+		ISwitchObject vswitch;
+		List<Link> links = new ArrayList<Link>();
+
+		vswitch = conn.utils().searchSwitch(conn, dpid);
+
+		for(IPortObject vportSrc : vswitch.getPorts()) {
+			// TODO array concatenation may be heavy
+			List<Link> sublinks = getLinks(HexString.toLong(dpid), vportSrc.getNumber());
+			links.addAll(sublinks);
+		}
+
+		return links;
 	}
 
 	public List<Link> getActiveLinks() {