ONOS-6201 Add next and filtering objective unit tests to VirtualNetworkFlowObjectiveManagerTest
Change-Id: Ida3d89c558cea148c5ff6741bf6e2b47d236866b
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkFlowObjectiveManagerTest.java b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkFlowObjectiveManagerTest.java
index 04e117f..5809ce5 100644
--- a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkFlowObjectiveManagerTest.java
+++ b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkFlowObjectiveManagerTest.java
@@ -47,9 +47,14 @@
import org.onosproject.net.flow.FlowRuleBatchOperation;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.flow.criteria.Criteria;
+import org.onosproject.net.flowobjective.DefaultFilteringObjective;
import org.onosproject.net.flowobjective.DefaultForwardingObjective;
+import org.onosproject.net.flowobjective.DefaultNextObjective;
+import org.onosproject.net.flowobjective.FilteringObjective;
import org.onosproject.net.flowobjective.FlowObjectiveService;
import org.onosproject.net.flowobjective.ForwardingObjective;
+import org.onosproject.net.flowobjective.NextObjective;
import org.onosproject.net.intent.FakeIntentManager;
import org.onosproject.net.intent.TestableIntentService;
import org.onosproject.net.provider.ProviderId;
@@ -166,6 +171,55 @@
0, flowRuleStore.getFlowRuleCount(vnet2.id())));
}
+ /**
+ * Tests adding a next objective.
+ */
+ @Test
+ public void nextObjective() {
+ TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
+ NextObjective nextObjective = DefaultNextObjective.builder()
+ .withId(service1.allocateNextId())
+ .fromApp(NetTestTools.APP_ID)
+ .addTreatment(treatment)
+ .withType(NextObjective.Type.BROADCAST)
+ .makePermanent()
+ .add();
+
+ service1.next(VDID1, nextObjective);
+
+ TestTools.assertAfter(RETRY_MS, () ->
+ assertEquals("1 next map entry expected",
+ 1, service1.getNextMappings().size()));
+ TestTools.assertAfter(RETRY_MS, () ->
+ assertEquals("0 next map entry expected",
+ 0, service2.getNextMappings().size()));
+ }
+
+ /**
+ * Tests adding a filtering objective.
+ */
+ @Test
+ public void filteringObjective() {
+ TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
+ FilteringObjective filter =
+ DefaultFilteringObjective.builder()
+ .fromApp(NetTestTools.APP_ID)
+ .withMeta(treatment)
+ .makePermanent()
+ .deny()
+ .addCondition(Criteria.matchEthType(12))
+ .add();
+
+ service1.filter(VDID1, filter);
+
+ TestTools.assertAfter(RETRY_MS, () ->
+ assertEquals("1 flowrule entry expected",
+ 1, flowRuleStore.getFlowRuleCount(vnet1.id())));
+ TestTools.assertAfter(RETRY_MS, () ->
+ assertEquals("0 flowrule entry expected",
+ 0, flowRuleStore.getFlowRuleCount(vnet2.id())));
+ }
+
//TODO: More test cases for filter, foward, and next
private class TestProvider extends AbstractVirtualProvider
@@ -190,4 +244,4 @@
}
}
-}
\ No newline at end of file
+}