aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/test/java/org/onap
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2020-02-12 12:28:59 +0200
committerIttay Stern <ittay.stern@att.com>2020-02-20 15:09:01 +0200
commitd6eedb1f342ac32c8339b553848267e443410d57 (patch)
treeb029af0b321d24ac53e616e72fdc19f8fe9d9f47 /vid-app-common/src/test/java/org/onap
parenta5ba6b59e4fc84b6aeae456c1860fcf7517e99cf (diff)
Topology tree: extract AAITreeNodesEnricher out of AAIServiceTree
Issue-ID: VID-771 Change-Id: I138a89b7b2f00e6e603ff26addefc494aeb019b0 Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-app-common/src/test/java/org/onap')
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AAIServiceIntegrativeTest.java10
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java14
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeTest.java143
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AAITreeNodesEnricherTest.java183
4 files changed, 202 insertions, 148 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceIntegrativeTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceIntegrativeTest.java
index a73a5a7bd..e447ac71c 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceIntegrativeTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceIntegrativeTest.java
@@ -64,12 +64,10 @@ public class AAIServiceIntegrativeTest extends TestWithAaiClient {
AaiClient aaiClient = new AaiClient(aaiRestInterface, null, cacheProvider);
ExecutorService executorService = MoreExecutors.newDirectExecutorService();
AAIServiceTree aaiServiceTree = new AAIServiceTree(
- aaiClient,
- new AAITreeNodeBuilder(aaiClient, logging),
- new AAITreeConverter(new ModelUtil()),
- null,
- null,
- executorService
+ new AAITreeNodeBuilder(aaiClient, logging),
+ new AAITreeNodesEnricher(aaiClient, null),
+ new AAITreeConverter(new ModelUtil()), null,
+ executorService
);
return new AaiServiceImpl(aaiClient, null, aaiServiceTree, executorService, logging);
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java
index 0d2d51cee..02f127d71 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeIntegrativeTest.java
@@ -61,6 +61,7 @@ import org.onap.vid.utils.Logging;
import org.springframework.http.HttpMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import org.togglz.core.manager.FeatureManager;
public class AAIServiceTreeIntegrativeTest {
@@ -80,8 +81,12 @@ public class AAIServiceTreeIntegrativeTest {
ServiceModelInflator serviceModelInflator;
@Mock
+ FeatureManager featureManager;
+
+ @Mock
Logging logging;
+ private AAITreeNodesEnricher aaiTreeNodesEnricher;
private AAITreeNodeBuilder aaiTreeNodeBuilder;
private AAITreeConverter aaiTreeConverter = new AAITreeConverter(new ModelUtil());
@@ -133,7 +138,6 @@ public class AAIServiceTreeIntegrativeTest {
"\"relationship-key\": \"owning-entity.owning-entity-id\"," +
"\"relationship-value\": \"43b8a85a-0421-4265-9069-117dd6526b8a\"}]}]}}";
- //TODO Amichai: if in the future it is neede, add here the SUFFIX to the URL: "?format=simple"
private static String genericVnfRequestUri = "/aai/v12/network/generic-vnfs/generic-vnf/59bde732-9b84-46bd-a59a-3c45fee0538b";
private String genericVnfResponseString(boolean isDuplicatedKeysInTenantRelation) {
@@ -300,6 +304,7 @@ public class AAIServiceTreeIntegrativeTest {
TestUtils.initMockitoMocks(this);
reboundLoggingWithMdcMock();
aaiTreeNodeBuilder = new AAITreeNodeBuilder(aaiClient, logging);
+ aaiTreeNodesEnricher = new AAITreeNodesEnricher(aaiClient, serviceModelInflator);
}
private void reboundLoggingWithMdcMock() {
@@ -320,7 +325,7 @@ public class AAIServiceTreeIntegrativeTest {
"11c6dc3e-cd6a-41b3-a50e-b5a10f7157d0", new ServiceModelInflator.Names("vnf-model-customization-name", "vnf-key-in-model")
));
- ServiceInstance root = new AAIServiceTree(aaiClient, aaiTreeNodeBuilder, aaiTreeConverter, sdcService, serviceModelInflator, executorService)
+ ServiceInstance root = new AAIServiceTree(aaiTreeNodeBuilder, aaiTreeNodesEnricher, aaiTreeConverter, sdcService, executorService)
.getServiceInstanceTopology(globalCustomerID, serviceType, serviceInstanceId);
assertServiceNode(root, 1);
@@ -370,7 +375,8 @@ public class AAIServiceTreeIntegrativeTest {
when(sdcService.getService(any())).thenReturn(
TestUtils.readJsonResourceFileAsObject("/getTopology/serviceWithCR/serviceWithCRModel.json", ServiceModel.class));
- ServiceInstance serviceInstance = new AAIServiceTree(aaiClient, aaiTreeNodeBuilder, aaiTreeConverter, sdcService, new ServiceModelInflator(), executorService)
+ ServiceInstance serviceInstance = new AAIServiceTree(aaiTreeNodeBuilder,
+ new AAITreeNodesEnricher(aaiClient, new ServiceModelInflator()), aaiTreeConverter, sdcService, executorService)
.getServiceInstanceTopology("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", "Emanuel", "a565e6ad-75d1-4493-98f1-33234b5c17e2");
String expected = TestUtils.readFileAsString("/getTopology/serviceWithCR/getTopologyWithCR.json");
@@ -437,7 +443,7 @@ public class AAIServiceTreeIntegrativeTest {
when(sdcService.getService(any())).thenReturn(mock(ServiceModel.class));
when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(ImmutableMap.of());
- new AAIServiceTree(aaiClient, aaiTreeNodeBuilder, aaiTreeConverter, sdcService, serviceModelInflator, executorService)
+ new AAIServiceTree(aaiTreeNodeBuilder, aaiTreeNodesEnricher, aaiTreeConverter, sdcService, executorService)
.getServiceInstanceTopology(globalCustomerID, serviceType, serviceInstanceId);
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeTest.java
index be195c89b..ca3e98e2d 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AAIServiceTreeTest.java
@@ -20,37 +20,24 @@
package org.onap.vid.services;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.emptyMap;
-import static java.util.stream.Collectors.toList;
import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.onap.vid.services.AAITreeNodeBuilderTest.createExpectedVnfTreeNode;
import com.fasterxml.jackson.databind.JsonNode;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Streams;
import com.google.common.util.concurrent.MoreExecutors;
-import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutorService;
import net.javacrumbs.jsonunit.core.Option;
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import org.jetbrains.annotations.NotNull;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.onap.vid.aai.AaiClient;
import org.onap.vid.aai.util.AAITreeConverter;
import org.onap.vid.asdc.parser.ServiceModelInflator;
-import org.onap.vid.asdc.parser.ServiceModelInflator.Names;
import org.onap.vid.model.ModelUtil;
import org.onap.vid.model.aaiTree.AAITreeNode;
import org.onap.vid.model.aaiTree.NodeType;
@@ -76,136 +63,16 @@ public class AAIServiceTreeTest {
MockitoAnnotations.initMocks(this);
}
- private final static String nullString = "null placeholder";
-
-
-
- @Test
- public void enrichNodesWithModelCustomizationName_simple3NodesCase_nodesEnriched() {
-
- when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(ImmutableMap.of(
- "version id a", new Names("name a", "key a"),
- "version id b", new Names("name b", "key b"),
- "version id c", new Names("name c", "key c")
- ));
-
- final ImmutableList<String> versionIds = ImmutableList.of("version id a", "version id b", "version id c");
- final ImmutableList<Names> expectedNames = ImmutableList.of(
- new Names("name a", "key a"),
- new Names("name b", "key b"),
- new Names("name c", "key c"));
-
-
- final List<AAITreeNode> nodesUnderTest = nodesWithVersionIds(versionIds);
- aaiServiceTree.enrichNodesWithModelCustomizationName(nodesUnderTest, null);
-
- assertThat(toStrings(nodesUnderTest), containsInAnyOrder(toStringsArray(nodesWithVersionIdsAndCustomizationNames(versionIds, expectedNames))));
- }
-
- @Test
- public void enrichNodesWithModelCustomizationName_noNodes_noError() {
-
- when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(ImmutableMap.of(
- "11c6dc3e-cd6a-41b3-a50e-b5a10f7157d0", new Names("my model cust name", "my key")
- ));
-
- aaiServiceTree.enrichNodesWithModelCustomizationName(emptyList(), null);
- }
-
- @Test
- public void enrichNodesWithModelCustomizationName_nothingInModel_nodesUnchanged() {
-
- when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(emptyMap());
-
- final ImmutableList<String> versionIds = ImmutableList.of("version id a", "version id b", "version id c");
- final Names nullNames = new Names(nullString, nullString);
- final ImmutableList<Names> expectedNames = ImmutableList.of(nullNames, nullNames, nullNames);
-
-
- final List<AAITreeNode> nodesUnderTest = nodesWithVersionIds(versionIds);
-
- aaiServiceTree.enrichNodesWithModelCustomizationName(nodesUnderTest, null);
-
- assertThat(toStrings(nodesUnderTest), containsInAnyOrder(toStringsArray(nodesWithVersionIdsAndCustomizationNames(versionIds, expectedNames))));
- }
-
- @Test
- public void enrichNodesWithModelCustomizationName_staggered4NodesAndNull_3nodesEnriched2isNull() {
-
- when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(ImmutableMap.of(
- "version id Z", new Names("name Z", "key Z"),
- "version id d", new Names(null, "key d"),
- "version id c", new Names("name c", null),
- "version id a", new Names("name a", "key a")
- ));
-
- final ImmutableList<String> versionIds = ImmutableList.of("version id a", "version id b", "version id c", "version id d", nullString);
- final ImmutableList<Names> expectedNames = ImmutableList.of(
- new Names("name a", "key a"),
- new Names(nullString, nullString),
- new Names("name c", nullString),
- new Names(nullString, "key d"),
- new Names(nullString, nullString)
- );
-
-
- final List<AAITreeNode> nodesUnderTest = nodesWithVersionIds(versionIds);
-
- aaiServiceTree.enrichNodesWithModelCustomizationName(nodesUnderTest, null);
-
- assertThat(toStrings(nodesUnderTest), containsInAnyOrder(toStringsArray(nodesWithVersionIdsAndCustomizationNames(versionIds, expectedNames))));
- }
-
-
-
- @NotNull
- private String[] toStringsArray(List<AAITreeNode> nodes) {
- return toStrings(nodes).toArray(new String[] {});
- }
-
- @NotNull
- private List<String> toStrings(List<AAITreeNode> nodes) {
- return nodes.stream().map(n -> {
- final ReflectionToStringBuilder reflectionToStringBuilder = new ReflectionToStringBuilder(n, ToStringStyle.SHORT_PREFIX_STYLE);
- reflectionToStringBuilder.setExcludeNullValues(true);
- return reflectionToStringBuilder.toString();
- }).collect(toList());
- }
-
- @NotNull
- private List<AAITreeNode> nodesWithVersionIdsAndCustomizationNames(List<String> versionIds, List<Names> customizationNames) {
- return Streams
- .zip(versionIds.stream(), customizationNames.stream(), this::nodeWithVersionIdAndCustomizationName)
- .collect(toList());
- }
-
- @NotNull
- private List<AAITreeNode> nodesWithVersionIds(List<String> versionIds) {
- return versionIds.stream()
- .map(versionId -> nodeWithVersionIdAndCustomizationName(versionId, new Names(nullString, nullString)))
- .collect(toList());
- }
-
- private AAITreeNode nodeWithVersionIdAndCustomizationName(String versionId, Names names) {
- AAITreeNode newNode = new AAITreeNode();
- newNode.setModelVersionId(versionId.equals(nullString) ? null : versionId);
- newNode.setModelCustomizationName(names.getModelCustomizationName().equals(nullString) ? null : names.getModelCustomizationName());
- newNode.setKeyInModel(names.getModelKey().equals(nullString) ? null : names.getModelKey());
- return newNode;
- }
-
@Test
- public void whenBuildTreeForOneResource_resultAsExpected() throws IOException {
+ public void whenBuildTreeForOneResource_resultAsExpected() {
AaiClient aaiClientMock = mock(AaiClient.class);
ExecutorService executorService = MoreExecutors.newDirectExecutorService();
AAIServiceTree aaiServiceTree = new AAIServiceTree(
- aaiClientMock,
- new AAITreeNodeBuilder(aaiClientMock, new Logging()),
- new AAITreeConverter(new ModelUtil()),
- null,
- null,
- executorService
+ new AAITreeNodeBuilder(aaiClientMock, new Logging()),
+ null,
+ new AAITreeConverter(new ModelUtil()), null,
+ executorService
);
String url = "anyUrl/vnf";
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AAITreeNodesEnricherTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AAITreeNodesEnricherTest.java
new file mode 100644
index 000000000..8aba27932
--- /dev/null
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AAITreeNodesEnricherTest.java
@@ -0,0 +1,183 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 - 2020 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.vid.services;
+
+import static java.util.Collections.emptyList;
+import static java.util.Collections.emptyMap;
+import static java.util.stream.Collectors.toList;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.when;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Streams;
+import java.util.List;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import org.jetbrains.annotations.NotNull;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.onap.vid.aai.AaiClientInterface;
+import org.onap.vid.asdc.parser.ServiceModelInflator;
+import org.onap.vid.asdc.parser.ServiceModelInflator.Names;
+import org.onap.vid.model.aaiTree.AAITreeNode;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+import org.togglz.core.manager.FeatureManager;
+
+public class AAITreeNodesEnricherTest {
+
+ @Mock
+ private AaiClientInterface aaiClient;
+ @Mock
+ private VidService sdcService;
+ @Mock
+ private ServiceModelInflator serviceModelInflator;
+ @Mock
+ private FeatureManager featureManager;
+ @InjectMocks
+ private AAITreeNodesEnricher aaiTreeNodesEnricher;
+
+ @BeforeTest
+ public void initMocks() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ private final static String nullString = "null placeholder";
+
+ @Test
+ public void enrichNodesWithModelCustomizationName_simple3NodesCase_nodesEnriched() {
+
+ when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(ImmutableMap.of(
+ "version id a", new Names("name a", "key a"),
+ "version id b", new Names("name b", "key b"),
+ "version id c", new Names("name c", "key c")
+ ));
+
+ final ImmutableList<String> versionIds = ImmutableList.of("version id a", "version id b", "version id c");
+ final ImmutableList<Names> expectedNames = ImmutableList.of(
+ new Names("name a", "key a"),
+ new Names("name b", "key b"),
+ new Names("name c", "key c"));
+
+
+ final List<AAITreeNode> nodesUnderTest = nodesWithVersionIds(versionIds);
+ aaiTreeNodesEnricher.enrichNodesWithModelCustomizationName(nodesUnderTest, null);
+
+ assertThat(toStrings(nodesUnderTest), containsInAnyOrder(toStringsArray(nodesWithVersionIdsAndCustomizationNames(versionIds, expectedNames))));
+ }
+
+ @Test
+ public void enrichNodesWithModelCustomizationName_noNodes_noError() {
+
+ when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(ImmutableMap.of(
+ "11c6dc3e-cd6a-41b3-a50e-b5a10f7157d0", new Names("my model cust name", "my key")
+ ));
+
+ aaiTreeNodesEnricher.enrichNodesWithModelCustomizationName(emptyList(), null);
+ }
+
+ @Test
+ public void enrichNodesWithModelCustomizationName_nothingInModel_nodesUnchanged() {
+
+ when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(emptyMap());
+
+ final ImmutableList<String> versionIds = ImmutableList.of("version id a", "version id b", "version id c");
+ final Names nullNames = new Names(nullString, nullString);
+ final ImmutableList<Names> expectedNames = ImmutableList.of(nullNames, nullNames, nullNames);
+
+
+ final List<AAITreeNode> nodesUnderTest = nodesWithVersionIds(versionIds);
+
+ aaiTreeNodesEnricher.enrichNodesWithModelCustomizationName(nodesUnderTest, null);
+
+ assertThat(toStrings(nodesUnderTest), containsInAnyOrder(toStringsArray(nodesWithVersionIdsAndCustomizationNames(versionIds, expectedNames))));
+ }
+
+ @Test
+ public void enrichNodesWithModelCustomizationName_staggered4NodesAndNull_3nodesEnriched2isNull() {
+
+ when(serviceModelInflator.toNamesByVersionId(any())).thenReturn(ImmutableMap.of(
+ "version id Z", new Names("name Z", "key Z"),
+ "version id d", new Names(null, "key d"),
+ "version id c", new Names("name c", null),
+ "version id a", new Names("name a", "key a")
+ ));
+
+ final ImmutableList<String> versionIds = ImmutableList.of("version id a", "version id b", "version id c", "version id d", nullString);
+ final ImmutableList<Names> expectedNames = ImmutableList.of(
+ new Names("name a", "key a"),
+ new Names(nullString, nullString),
+ new Names("name c", nullString),
+ new Names(nullString, "key d"),
+ new Names(nullString, nullString)
+ );
+
+
+ final List<AAITreeNode> nodesUnderTest = nodesWithVersionIds(versionIds);
+
+ aaiTreeNodesEnricher.enrichNodesWithModelCustomizationName(nodesUnderTest, null);
+
+ assertThat(toStrings(nodesUnderTest), containsInAnyOrder(toStringsArray(nodesWithVersionIdsAndCustomizationNames(versionIds, expectedNames))));
+ }
+
+
+
+ @NotNull
+ private String[] toStringsArray(List<AAITreeNode> nodes) {
+ return toStrings(nodes).toArray(new String[] {});
+ }
+
+ @NotNull
+ private List<String> toStrings(List<AAITreeNode> nodes) {
+ return nodes.stream().map(n -> {
+ final ReflectionToStringBuilder reflectionToStringBuilder = new ReflectionToStringBuilder(n, ToStringStyle.SHORT_PREFIX_STYLE);
+ reflectionToStringBuilder.setExcludeNullValues(true);
+ return reflectionToStringBuilder.toString();
+ }).collect(toList());
+ }
+
+ @NotNull
+ private List<AAITreeNode> nodesWithVersionIdsAndCustomizationNames(List<String> versionIds, List<Names> customizationNames) {
+ return Streams
+ .zip(versionIds.stream(), customizationNames.stream(), this::nodeWithVersionIdAndCustomizationName)
+ .collect(toList());
+ }
+
+ @NotNull
+ private List<AAITreeNode> nodesWithVersionIds(List<String> versionIds) {
+ return versionIds.stream()
+ .map(versionId -> nodeWithVersionIdAndCustomizationName(versionId, new Names(nullString, nullString)))
+ .collect(toList());
+ }
+
+ private AAITreeNode nodeWithVersionIdAndCustomizationName(String versionId, Names names) {
+ AAITreeNode newNode = new AAITreeNode();
+ newNode.setModelVersionId(versionId.equals(nullString) ? null : versionId);
+ newNode.setModelCustomizationName(names.getModelCustomizationName().equals(nullString) ? null : names.getModelCustomizationName());
+ newNode.setKeyInModel(names.getModelKey().equals(nullString) ? null : names.getModelKey());
+ return newNode;
+ }
+
+} \ No newline at end of file