Enhance the RouteEvent to notify listeners of alternative viable routes.

Traditionally the route event only notified listeners of the best selected
route for a given prefix, but some listeners are interested in all resolved
routes for the prefix.

CORD-905

Change-Id: Ia3e1e3a8e3e825ba894e6835e0860c3ed698d29b
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/routing/impl/RouteManagerTest.java b/incubator/net/src/test/java/org/onosproject/incubator/net/routing/impl/RouteManagerTest.java
index aeb2ff1..370b83b 100644
--- a/incubator/net/src/test/java/org/onosproject/incubator/net/routing/impl/RouteManagerTest.java
+++ b/incubator/net/src/test/java/org/onosproject/incubator/net/routing/impl/RouteManagerTest.java
@@ -199,7 +199,7 @@
     private void verifyRouteAdd(Route route, ResolvedRoute resolvedRoute) {
         reset(routeListener);
 
-        routeListener.event(new RouteEvent(RouteEvent.Type.ROUTE_ADDED, resolvedRoute));
+        routeListener.event(event(RouteEvent.Type.ROUTE_ADDED, resolvedRoute));
 
         replay(routeListener);
 
@@ -253,7 +253,7 @@
         // First add the original route
         addRoute(original);
 
-        routeListener.event(new RouteEvent(RouteEvent.Type.ROUTE_UPDATED,
+        routeListener.event(event(RouteEvent.Type.ROUTE_UPDATED,
                 updatedResolvedRoute, resolvedRoute));
         expectLastCall().once();
 
@@ -329,7 +329,7 @@
 
         // Now when we send the event, we expect the FIB update to be sent
         reset(routeListener);
-        routeListener.event(new RouteEvent(RouteEvent.Type.ROUTE_ADDED,
+        routeListener.event(event(RouteEvent.Type.ROUTE_ADDED,
                 new ResolvedRoute(route, MAC1, CP1)));
         replay(routeListener);
 
@@ -349,6 +349,14 @@
         verify(routeListener);
     }
 
+    private static RouteEvent event(RouteEvent.Type type, ResolvedRoute subject) {
+        return event(type, subject, null);
+    }
+
+    private static RouteEvent event(RouteEvent.Type type, ResolvedRoute subject, ResolvedRoute prevSubject) {
+        return new RouteEvent(type, subject, prevSubject, Collections.singleton(subject));
+    }
+
     /**
      * Test host service that stores a reference to the host listener.
      */