diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpFibTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpFibTest.java
index a764c83..31e1cde 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpFibTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpFibTest.java
@@ -244,6 +244,7 @@
         testRouteAddToNoVlan();
 
         // Build the new route entries for prefix1 and prefix2
+        ResolvedRoute oldRoutePrefixOne = new ResolvedRoute(PREFIX1, IP3, MAC3, SW3_ETH1);
         ResolvedRoute routePrefixOne = new ResolvedRoute(PREFIX1, IP1, MAC1, SW1_ETH1);
 
         // Create the new expected intents
@@ -258,7 +259,7 @@
 
         // Send in the update events
         routeListener.event(new RouteEvent(RouteEvent.Type.ROUTE_UPDATED,
-                                           routePrefixOne));
+                                           routePrefixOne, oldRoutePrefixOne));
 
         verify(intentSynchronizer);
     }
@@ -278,6 +279,7 @@
         testRouteAddToVlan();
 
         // Build the new route entries for prefix1 and prefix2
+        ResolvedRoute oldRoutePrefix = new ResolvedRoute(PREFIX2, IP1, MAC1, SW1_ETH1);
         ResolvedRoute routePrefix = new ResolvedRoute(PREFIX2, IP3, MAC3, SW3_ETH1);
 
         // Create the new expected intents
@@ -293,7 +295,7 @@
 
         // Send in the update events
         routeListener.event(new RouteEvent(RouteEvent.Type.ROUTE_UPDATED,
-                                           routePrefix));
+                                           routePrefix, oldRoutePrefix));
 
         verify(intentSynchronizer);
     }
@@ -310,7 +312,7 @@
         testRouteAddToNoVlan();
 
         // Construct the existing route entry
-        ResolvedRoute route = new ResolvedRoute(PREFIX1, null, null, null);
+        ResolvedRoute route = new ResolvedRoute(PREFIX1, IP3, MAC3, SW3_ETH1);
 
         // Create existing intent
         MultiPointToSinglePointIntent removedIntent =
