Added unit tests; including guava-testlib.
diff --git a/net/api/pom.xml b/net/api/pom.xml
index f74d08e..79737d3 100644
--- a/net/api/pom.xml
+++ b/net/api/pom.xml
@@ -16,4 +16,11 @@
 
     <description>ONOS network control API</description>
 
+    <dependencies>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava-testlib</artifactId>
+        </dependency>
+    </dependencies>
+
 </project>
diff --git a/net/api/src/main/java/org/onlab/onos/net/DeviceId.java b/net/api/src/main/java/org/onlab/onos/net/DeviceId.java
index 124fa96..6f4cff2 100644
--- a/net/api/src/main/java/org/onlab/onos/net/DeviceId.java
+++ b/net/api/src/main/java/org/onlab/onos/net/DeviceId.java
@@ -7,6 +7,7 @@
  */
 public class DeviceId extends ElementId {
 
+    // TODO: Discuss whether we should just use ElementId for Device and Host alike
     /**
      * Creates a device id using the supplied URI.
      *
diff --git a/net/api/src/test/java/org/onlab/onos/net/DeviceIdTest.java b/net/api/src/test/java/org/onlab/onos/net/DeviceIdTest.java
new file mode 100644
index 0000000..f373678
--- /dev/null
+++ b/net/api/src/test/java/org/onlab/onos/net/DeviceIdTest.java
@@ -0,0 +1,20 @@
+package org.onlab.onos.net;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+/**
+ * Test of the provider identifier.
+ */
+public class DeviceIdTest extends ElementIdTest {
+
+    @Test
+    public void basics() {
+        new EqualsTester()
+                .addEqualityGroup(new DeviceId(uri("of:foo")),
+                                  new DeviceId(uri("of:foo")))
+                .addEqualityGroup(new DeviceId(uri("of:bar")))
+                .testEquals();
+    }
+
+}
diff --git a/net/api/src/test/java/org/onlab/onos/net/ElementIdTest.java b/net/api/src/test/java/org/onlab/onos/net/ElementIdTest.java
new file mode 100644
index 0000000..4de68dd
--- /dev/null
+++ b/net/api/src/test/java/org/onlab/onos/net/ElementIdTest.java
@@ -0,0 +1,30 @@
+package org.onlab.onos.net;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+import java.net.URI;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test of the provider identifier.
+ */
+public class ElementIdTest {
+
+    public static URI uri(String str) {
+        return URI.create(str);
+    }
+
+    @Test
+    public void basics() {
+        new EqualsTester()
+                .addEqualityGroup(new ElementId(uri("of:foo")),
+                                  new ElementId(uri("of:foo")))
+                .addEqualityGroup(new ElementId(uri("of:bar")))
+                .testEquals();
+        assertEquals("wrong uri", uri("ofcfg:foo"),
+                     new ElementId(uri("ofcfg:foo")).uri());
+    }
+
+}
diff --git a/net/api/src/test/java/org/onlab/onos/net/provider/AbstractProviderTest.java b/net/api/src/test/java/org/onlab/onos/net/provider/AbstractProviderTest.java
new file mode 100644
index 0000000..745aebc
--- /dev/null
+++ b/net/api/src/test/java/org/onlab/onos/net/provider/AbstractProviderTest.java
@@ -0,0 +1,18 @@
+package org.onlab.onos.net.provider;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test of the base provider implementation.
+ */
+public class AbstractProviderTest {
+
+    @Test
+    public void basics() {
+        ProviderId id = new ProviderId("foo.bar");
+        TestProvider provider = new TestProvider(id);
+        assertEquals("incorrect id", id, provider.id());
+    }
+}
diff --git a/net/api/src/test/java/org/onlab/onos/net/provider/ProviderIdTest.java b/net/api/src/test/java/org/onlab/onos/net/provider/ProviderIdTest.java
new file mode 100644
index 0000000..1c05507
--- /dev/null
+++ b/net/api/src/test/java/org/onlab/onos/net/provider/ProviderIdTest.java
@@ -0,0 +1,19 @@
+package org.onlab.onos.net.provider;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+/**
+ * Test of the provider identifier.
+ */
+public class ProviderIdTest {
+
+    @Test
+    public void basics() {
+        new EqualsTester()
+                .addEqualityGroup(new ProviderId("foo"), new ProviderId("foo"))
+                .addEqualityGroup(new ProviderId("bar"))
+                .testEquals();
+    }
+
+}
diff --git a/net/api/src/test/java/org/onlab/onos/net/provider/TestProvider.java b/net/api/src/test/java/org/onlab/onos/net/provider/TestProvider.java
new file mode 100644
index 0000000..785577a
--- /dev/null
+++ b/net/api/src/test/java/org/onlab/onos/net/provider/TestProvider.java
@@ -0,0 +1,17 @@
+package org.onlab.onos.net.provider;
+
+/**
+ * Test provider fixture.
+ */
+public class TestProvider extends AbstractProvider {
+
+    /**
+     * Creates a provider with the supplier identifier.
+     *
+     * @param id provider id
+     */
+    protected TestProvider(ProviderId id) {
+        super(id);
+    }
+
+}