Bump upstream versions
[netconf.git] / netconf / tools / netconf-testtool / src / main / java / org / opendaylight / netconf / test / tool / DummyMonitoringService.java
index eef17df333e6d0ae13bc6aa9ac2e0c3211cc9163..d3b185d2451b9dce70391bd76b0a494abfb457ae 100644 (file)
@@ -7,13 +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 com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
-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;
@@ -44,10 +46,10 @@ public class DummyMonitoringService implements NetconfMonitoringService {
     private static final Function<Capability, Schema> CAPABILITY_SCHEMA_FUNCTION = capability -> new SchemaBuilder()
             .setIdentifier(capability.getModuleName().get())
             .setNamespace(new Uri(capability.getModuleNamespace().get()))
-            .setFormat(Yang.class)
+            .setFormat(Yang.VALUE)
             .setVersion(capability.getRevision().orElse(""))
-            .setLocation(Collections.singletonList(new Location(Enumeration.NETCONF)))
-            .withKey(new SchemaKey(Yang.class, capability.getModuleName().get(),
+            .setLocation(Set.of(new Location(Enumeration.NETCONF)))
+            .withKey(new SchemaKey(Yang.VALUE, capability.getModuleName().get(),
                 capability.getRevision().orElse("")))
             .build();
 
@@ -58,10 +60,10 @@ public class DummyMonitoringService implements NetconfMonitoringService {
     public DummyMonitoringService(final Set<Capability> capabilities) {
 
         this.capabilities = new CapabilitiesBuilder().setCapability(
-                new ArrayList<>(Collections2.transform(capabilities, CAPABILITY_URI_FUNCTION))).build();
+                ImmutableSet.copyOf(Collections2.transform(capabilities, CAPABILITY_URI_FUNCTION))).build();
 
         Set<Capability> moduleCapabilities = new HashSet<>();
-        this.capabilityMultiMap = ArrayListMultimap.create();
+        capabilityMultiMap = ArrayListMultimap.create();
         for (Capability cap : capabilities) {
             if (cap.getModuleName().isPresent()) {
                 capabilityMultiMap.put(cap.getModuleName().get(), cap);
@@ -69,7 +71,7 @@ public class DummyMonitoringService implements NetconfMonitoringService {
             }
         }
 
-        this.schemas = new SchemasBuilder()
+        schemas = new SchemasBuilder()
                 .setSchema(Maps.uniqueIndex(Collections2.transform(moduleCapabilities, CAPABILITY_SCHEMA_FUNCTION),
                     Schema::key))
                 .build();
@@ -107,12 +109,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");
     }