- private void checkNodeRuleGroupForRdm(List<NodeRuleGroup> nrgList, int nbNeps) {
- assertEquals(1, nrgList.size(), "RDM infra node - OTSi should contain a single node rule groups");
- if (nbNeps > 0) {
- List<NodeEdgePoint> nodeEdgePointList = new ArrayList<>(nrgList.get(0).getNodeEdgePoint().values());
- assertEquals(nbNeps, nodeEdgePointList.size(),
- "RDM infra node -rule-group should contain " + nbNeps + " NEP");
- } else {
- assertNull(nrgList.get(0).getNodeEdgePoint(), "RDM infra node -rule-group should contain no NEP");
+ private void checkNodeRuleGroupForRdm(List<NodeRuleGroup> nrgList, List<Integer> nbNeps) {
+ assertEquals(3, nrgList.size(), "RDM infra node - OTS should contain 3 node rule groups");
+ int index = 0;
+ for (NodeRuleGroup nrg : nrgList) {
+ List<NodeEdgePoint> nodeEdgePointList = new ArrayList<>(nrg.getNodeEdgePoint().values());
+ assertEquals(nbNeps.get(index), nodeEdgePointList.size(),
+ "RDM infra node -rule-group should contain " + nbNeps.get(index) + " NEP");
+ List<Rule> ruleList = new ArrayList<>(nrg.nonnullRule().values());
+ assertEquals(1, ruleList.size(), "node-rule-group should contain a single rule");
+ assertEquals("forward", ruleList.get(0).getLocalId(), "local-id of the rule should be 'forward'");
+ assertEquals(RuleType.FORWARDING, ruleList.get(0).getRuleType().stream().findFirst().orElseThrow(),
+ "the rule type should be 'FORWARDING'");
+ if (nrg.getName().entrySet().iterator().next().getValue().toString().contains("DEG")) {
+ assertEquals(FORWARDINGRULEMAYFORWARDACROSSGROUP.VALUE, ruleList.get(0).getForwardingRule(),
+ "the forwarding rule should be 'MAYFORWARDACROSSGROUP'");
+ } else {
+ assertEquals(FORWARDINGRULECANNOTFORWARDACROSSGROUP.VALUE, ruleList.get(0).getForwardingRule(),
+ "the forwarding rule should be 'CANNOTFORWARDACROSSGROUP'");
+ }
+ index++;