Added some tests.
diff --git a/net/api/src/test/java/org/onlab/onos/net/provider/AbstractProviderRegistryTest.java b/net/api/src/test/java/org/onlab/onos/net/provider/AbstractProviderRegistryTest.java
new file mode 100644
index 0000000..abbe5be
--- /dev/null
+++ b/net/api/src/test/java/org/onlab/onos/net/provider/AbstractProviderRegistryTest.java
@@ -0,0 +1,74 @@
+package org.onlab.onos.net.provider;
+
+import org.junit.Test;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test of the base provider registry.
+ */
+public class AbstractProviderRegistryTest {
+
+    private class TestProviderService extends AbstractProviderService<TestProvider> {
+        protected TestProviderService(TestProvider provider) {
+            super(provider);
+        }
+    }
+
+    private class TestProviderRegistry extends AbstractProviderRegistry<TestProvider, TestProviderService> {
+        @Override
+        protected TestProviderService createProviderService(TestProvider provider) {
+            return new TestProviderService(provider);
+        }
+    }
+
+    @Test
+    public void basics() {
+        TestProviderRegistry registry = new TestProviderRegistry();
+        assertEquals("incorrect provider count", 0, registry.getProviders().size());
+
+        ProviderId fooId = new ProviderId("foo");
+        TestProvider pFoo = new TestProvider(fooId);
+        TestProviderService psFoo = registry.register(pFoo);
+        assertEquals("incorrect provider count", 1, registry.getProviders().size());
+        assertThat("provider not found", registry.getProviders().contains(fooId));
+        assertEquals("incorrect provider", psFoo.provider(), pFoo);
+
+        ProviderId barId = new ProviderId("bar");
+        TestProvider pBar = new TestProvider(barId);
+        TestProviderService psBar = registry.register(pBar);
+        assertEquals("incorrect provider count", 2, registry.getProviders().size());
+        assertThat("provider not found", registry.getProviders().contains(barId));
+        assertEquals("incorrect provider", psBar.provider(), pBar);
+
+        psFoo.checkValidity();
+        registry.unregister(pFoo);
+        psBar.checkValidity();
+        assertEquals("incorrect provider count", 1, registry.getProviders().size());
+        assertThat("provider not found", registry.getProviders().contains(barId));
+    }
+
+    @Test(expected = IllegalStateException.class)
+    public void duplicateRegistration() {
+        TestProviderRegistry registry = new TestProviderRegistry();
+        TestProvider pFoo = new TestProvider(new ProviderId("foo"));
+        registry.register(pFoo);
+        registry.register(pFoo);
+    }
+
+    @Test
+    public void voidUnregistration() {
+        TestProviderRegistry registry = new TestProviderRegistry();
+        registry.unregister(new TestProvider(new ProviderId("foo")));
+    }
+
+    @Test(expected = IllegalStateException.class)
+    public void unregistration() {
+        TestProviderRegistry registry = new TestProviderRegistry();
+        TestProvider pFoo = new TestProvider(new ProviderId("foo"));
+        TestProviderService psFoo = registry.register(pFoo);
+        registry.unregister(pFoo);
+        psFoo.checkValidity();
+    }
+}