If there is only one revision is present, return it. 77/92277/1
authorVladyslav Marchenko <vladyslav.marchenko@pantheon.tech>
Tue, 25 Aug 2020 07:32:29 +0000 (10:32 +0300)
committerVladyslav Marchenko <Vladyslav.Marchenko@pantheon.tech>
Mon, 7 Sep 2020 14:38:44 +0000 (14:38 +0000)
JIRA: NETCONF-720
Signed-off-by: Vladyslav Marchenko <vladyslav.marchenko@pantheon.tech>
Change-Id: I9103ef41af9bda1681baddf853fb3f739c20b620
(cherry picked from commit 839046e2c74e05f363ba5aa6809c7eb03b60869e)

netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java

index ec76f8866b9ba5f0b1ea77f522a883e21a12f133..cb98f169279db9d31c97ce8575aa491320e50247 100644 (file)
@@ -7,12 +7,15 @@
  */
 package org.opendaylight.netconf.test.tool;
 
+import static com.google.common.base.Preconditions.checkState;
+
 import com.google.common.base.Function;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.Collections2;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 import org.opendaylight.netconf.api.capability.Capability;
@@ -104,12 +107,20 @@ public class DummyMonitoringService implements NetconfMonitoringService {
 
     @Override
     public String getSchemaForCapability(final String moduleName, final Optional<String> revision) {
-
-        for (Capability capability : capabilityMultiMap.get(moduleName)) {
-            if (capability.getRevision().get().equals(revision.get())) {
-                return capability.getCapabilitySchema().get();
+        final List<Capability> capabilityList = capabilityMultiMap.get(moduleName);
+        if (revision.isPresent()) {
+            for (Capability capability : capabilityList) {
+                if (capability.getRevision().orElseThrow().equals(revision.get())) {
+                    return capability.getCapabilitySchema().orElseThrow();
+                }
             }
+        } else {
+            checkState(capabilityList.size() == 1,
+                "Expected 1 capability for module %s, available revisions : %s", moduleName, capabilityList);
+            //Only one revision is present, so return it
+            return capabilityList.iterator().next().getCapabilitySchema().orElseThrow();
         }
+
         throw new IllegalArgumentException(
             "Module with name: " + moduleName + " and revision: " + revision + " does not exist");
     }