diff --git a/app/src/test/java/org/opencord/cordmcast/impl/McastTest.java b/app/src/test/java/org/opencord/cordmcast/impl/McastTest.java
index 9e64dca..84eb986 100644
--- a/app/src/test/java/org/opencord/cordmcast/impl/McastTest.java
+++ b/app/src/test/java/org/opencord/cordmcast/impl/McastTest.java
@@ -346,19 +346,9 @@
        McastEvent event = new McastEvent(McastEvent.Type.SINKS_REMOVED, previousSubject, currentSubject);
        cordMcast.listener.event(event);
 
-       // Operation will be REMOVE_FROM_EXISTING and nextMap will be updated.  None --> { }
+       // Operation will be REMOVE and nextMap will be updated.  None --> { }
        assertAfter(WAIT_TIMEOUT, WAIT_TIMEOUT * 2, () ->
-       assertTrue(nextMap.get(DEVICE_ID_OF_A).op() == Objective.Operation.REMOVE_FROM_EXISTING));
-
-       // Output port number will be changed to 24 i.e. PORT_C
-       Collection<TrafficTreatment> traffictreatMentCollection = nextMap.get(DEVICE_ID_OF_A).next();
-       assertTrue(1 == traffictreatMentCollection.size());
-       OutputInstruction output = null;
-       for (TrafficTreatment trafficTreatment : traffictreatMentCollection) {
-          output = outputPort(trafficTreatment);
-       }
-       assertNotNull(output);
-       assertTrue(PORT_C == output.port());
+       assertTrue(nextMap.get(DEVICE_ID_OF_A).op() == Objective.Operation.REMOVE));
   }
 
   @Test
