Adding port, port number, port description implementations and related tests.
diff --git a/net/api/src/test/java/org/onlab/onos/event/AbstractEventTest.java b/net/api/src/test/java/org/onlab/onos/event/AbstractEventTest.java
index 5ec3669..b79b836 100644
--- a/net/api/src/test/java/org/onlab/onos/event/AbstractEventTest.java
+++ b/net/api/src/test/java/org/onlab/onos/event/AbstractEventTest.java
@@ -11,12 +11,46 @@
  */
 public class AbstractEventTest {
 
+    /**
+     * Validates the base attributes of an event.
+     *
+     * @param event   event to validate
+     * @param type    event type
+     * @param subject event subject
+     * @param time    event time
+     * @param <T>     type of event
+     * @param <S>     type of subject
+     */
+    protected static <T extends Enum, S>
+    void validateEvent(Event<T, S> event, T type, S subject, long time) {
+        assertEquals("incorrect type", type, event.type());
+        assertEquals("incorrect subject", subject, event.subject());
+        assertEquals("incorrect time", time, event.time());
+    }
+
+    /**
+     * Validates the base attributes of an event.
+     *
+     * @param event   event to validate
+     * @param type    event type
+     * @param subject event subject
+     * @param minTime minimum event time inclusive
+     * @param maxTime maximum event time inclusive
+     * @param <T>     type of event
+     * @param <S>     type of subject
+     */
+    protected static <T extends Enum, S>
+    void validateEvent(Event<T, S> event, T type, S subject,
+                       long minTime, long maxTime) {
+        assertEquals("incorrect type", type, event.type());
+        assertEquals("incorrect subject", subject, event.subject());
+        assertTrue("incorrect time", minTime <= event.time() && event.time() <= maxTime);
+    }
+
     @Test
     public void withTime() {
         TestEvent event = new TestEvent(FOO, "foo", 123L);
-        assertEquals("incorrect type", FOO, event.type());
-        assertEquals("incorrect subject", "foo", event.subject());
-        assertEquals("incorrect time", 123L, event.time());
+        validateEvent(event, FOO, "foo", 123L);
     }
 
     @Test
@@ -24,8 +58,7 @@
         long before = System.currentTimeMillis();
         TestEvent event = new TestEvent(FOO, "foo");
         long after = System.currentTimeMillis();
-        assertEquals("incorrect type", FOO, event.type());
-        assertEquals("incorrect subject", "foo", event.subject());
-        assertTrue("incorrect time", before <= event.time() && event.time() <= after);
+        validateEvent(event, FOO, "foo", before, after);
     }
+
 }