package org.onap.vid.asdc.parser;
+import static java.util.stream.Collectors.toSet;
import static org.apache.commons.lang3.StringUtils.equalsAnyIgnoreCase;
import static org.apache.commons.lang3.StringUtils.equalsIgnoreCase;
import static org.apache.commons.lang3.StringUtils.isEmpty;
+import static org.onap.vid.utils.KotlinUtilsKt.JACKSON_OBJECT_MAPPER;
import com.google.common.collect.ImmutableMap;
+import java.io.IOException;
import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.stream.Stream;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
import org.onap.sdc.toscaparser.api.NodeTemplate;
import org.onap.sdc.toscaparser.api.elements.Metadata;
+import org.onap.vid.exceptions.GenericUncheckedException;
import org.onap.vid.model.ServiceModel;
import org.onap.vid.model.VidNotions;
import org.onap.vid.model.VidNotions.InstantiationUI;
public class VidNotionsBuilder {
private final FeatureManager featureManager;
+ private final Set<UUID> invariantToMacro;
//map of service type that are always macro services, and their relevant featureFlag
private static final Map<VidNotions.ModelCategory, Features> macroServicesByModelCategory = ImmutableMap.of(
public VidNotionsBuilder(FeatureManager featureManager) {
this.featureManager = featureManager;
+ invariantToMacro = loadInvariantMacroUUIDsFromFile();
+ }
+
+ @NotNull
+ private Set<UUID> loadInvariantMacroUUIDsFromFile() {
+ try {
+ return Stream.of(JACKSON_OBJECT_MAPPER.readValue(
+ VidNotionsBuilder.class.getResource("/macro_services_by_invariant_uuid.json"),
+ String[].class
+ )).map(UUID::fromString).collect(toSet());
+ } catch (IOException e) {
+ throw new GenericUncheckedException(e);
+ }
}
VidNotions buildVidNotions(ISdcCsarHelper csarHelper, ServiceModel serviceModel) {
);
}
+
+ protected boolean isMacroByInvariantUuid(String uuid) {
+ try {
+ return invariantToMacro.contains(UUID.fromString(uuid));
+ }
+ catch (IllegalArgumentException | NullPointerException e) { //not a uuid
+ return false;
+ }
+ }
}
assertEquals(expectedViewEditUi, vidNotionsBuilder.suggestViewEditUI(csarHelper, serviceModel, ModelCategory.OTHER));
}
+
+ @DataProvider
+ public static Object[][] invariantUuidToMacroDataProvider() {
+ return new Object[][]{
+ {"117f5f1a-1b47-4ae1-ae04-489c9a7ada28", true},
+ {"117F5f1a-1b47-4AE1-ae04-489C9A7ada28", true},
+ {"2efab359-cdd4-4da2-9b79-61df990796c2", true},
+ {"67e09a1f-9e42-4b63-8dee-bc60bae50de1", false},
+ {"67e09A1F-9E42-4b63-8Dee-bc60bae50de1", false},
+ {"5d854f6b-759c-4aa6-b472-7e4bb1c003d4", false},
+ {"I'm not a uuid", false},
+ {null, false},
+ };
+ }
+
+ @Test(dataProvider = "invariantUuidToMacroDataProvider")
+ public void testIsMacroByInvariantUuid(String uuid, boolean expectedIsMacro) {
+ assertEquals(expectedIsMacro, vidNotionsBuilder.isMacroByInvariantUuid(uuid));
+ }
}