summaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'vid-app-common/src/test/java')
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/dal/AsyncInstantiationRepositoryTest.java24
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java215
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java24
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java25
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java5
5 files changed, 271 insertions, 22 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/dal/AsyncInstantiationRepositoryTest.java b/vid-app-common/src/test/java/org/onap/vid/dal/AsyncInstantiationRepositoryTest.java
index 012c37f4d..27be3fb50 100644
--- a/vid-app-common/src/test/java/org/onap/vid/dal/AsyncInstantiationRepositoryTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/dal/AsyncInstantiationRepositoryTest.java
@@ -45,6 +45,7 @@ import org.onap.vid.config.MockedAaiClientAndFeatureManagerConfig;
import org.onap.vid.job.Job;
import org.onap.vid.model.ResourceInfo;
import org.onap.vid.model.ServiceInfo;
+import org.onap.vid.model.ServiceInfo.ServiceAction;
import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
import org.onap.vid.mso.rest.AsyncRequestStatus;
import org.onap.vid.mso.rest.RequestStatus;
@@ -73,14 +74,16 @@ public class AsyncInstantiationRepositoryTest extends AsyncInstantiationBaseTest
LocalDateTime NOW = LocalDateTime.now();
- addNewServiceInfo(UUID.randomUUID(), "abc", "1", NOW.minusYears(1L), NOW, COMPLETED, false, false,
- MODEL_UUID);
- addNewServiceInfo(UUID.randomUUID(), "abc", "2", NOW, NOW, COMPLETED, false, false,
- MODEL_UUID_2);
- addNewServiceInfo(UUID.randomUUID(), "abc", "3", NOW, NOW, COMPLETED, false, false,
- MODEL_UUID);
- addNewServiceInfo(UUID.randomUUID(), "abc", "hidden", NOW, NOW, COMPLETED, true, false,
- MODEL_UUID);
+ addNewServiceInfoWithAction(UUID.randomUUID(), "abc", "0", NOW.minusYears(1L), NOW, COMPLETED, false, false,
+ MODEL_UUID, ServiceAction.RESUME);
+ addNewServiceInfoWithAction(UUID.randomUUID(), "abc", "1", NOW.minusYears(1L), NOW, COMPLETED, false, false,
+ MODEL_UUID, ServiceAction.INSTANTIATE);
+ addNewServiceInfoWithAction(UUID.randomUUID(), "abc", "2", NOW, NOW, COMPLETED, false, false,
+ MODEL_UUID_2, ServiceAction.INSTANTIATE);
+ addNewServiceInfoWithAction(UUID.randomUUID(), "abc", "3", NOW, NOW, COMPLETED, false, false,
+ MODEL_UUID, ServiceAction.INSTANTIATE);
+ addNewServiceInfoWithAction(UUID.randomUUID(), "abc", "hidden", NOW, NOW, COMPLETED, true, false,
+ MODEL_UUID, ServiceAction.INSTANTIATE);
}
@DataProvider
@@ -93,14 +96,15 @@ public class AsyncInstantiationRepositoryTest extends AsyncInstantiationBaseTest
@Test(dataProvider = "listServicesByServiceModelIdDataProvider")
public void testListServicesByServiceModelId(String desc, String modelUUID, String... expectedResult) {
- List<ServiceInfo> serviceInfoListResult = asyncInstantiationRepository.listServicesByServiceModelId(UUID.fromString(modelUUID));
+ List<ServiceInfo> serviceInfoListResult = asyncInstantiationRepository.
+ listInstantiatedServicesByServiceModelId(UUID.fromString(modelUUID));
assertThat(desc, serviceInfoListResult.stream().map(ServiceInfo::getServiceInstanceName).collect(toList()),
contains(expectedResult));
}
@Test
public void whenFilterServiceByNotExistUUID_emptyListIsReturned() {
- List<ServiceInfo> serviceInfoListResult = asyncInstantiationRepository.listServicesByServiceModelId(UUID.randomUUID());
+ List<ServiceInfo> serviceInfoListResult = asyncInstantiationRepository.listInstantiatedServicesByServiceModelId(UUID.randomUUID());
assertThat(serviceInfoListResult, is(empty()));
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java b/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java
new file mode 100644
index 000000000..b5d281622
--- /dev/null
+++ b/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java
@@ -0,0 +1,215 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 - 2019 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.model.serviceInstantiation;
+
+import static java.util.Collections.emptyMap;
+import static net.javacrumbs.jsonunit.JsonMatchers.jsonNodeAbsent;
+import static net.javacrumbs.jsonunit.JsonMatchers.jsonPartEquals;
+import static org.hamcrest.CoreMatchers.either;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.hasItem;
+import static org.hamcrest.Matchers.hasProperty;
+import static org.hamcrest.Matchers.nullValue;
+import static org.hamcrest.Matchers.samePropertyValuesAs;
+import static org.onap.vid.model.Action.Create;
+import static org.onap.vid.testUtils.TestUtils.setStringsInStringProperties;
+import static org.onap.vid.utils.KotlinUtilsKt.JACKSON_OBJECT_MAPPER;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.onap.vid.model.VidNotions;
+import org.onap.vid.model.VidNotions.InstantiationType;
+import org.onap.vid.model.VidNotions.InstantiationUI;
+import org.onap.vid.model.VidNotions.ModelCategory;
+import org.onap.vid.mso.model.ModelInfo;
+import org.testng.annotations.Test;
+
+public class InstantiationModelSerializationTest {
+
+ final ImmutableList<Map<String, String>> instanceParams =
+ ImmutableList.of(
+ ImmutableMap.of("one", "1"),
+ ImmutableMap.of("two", "2")
+ );
+
+ @Test
+ public void serializeAndDeserializeServiceInstantiation() throws Exception {
+
+ ServiceInstantiation serviceInstantiation = new ServiceInstantiation(
+ newModelInfo(),
+ "owningEntityId",
+ "owningEntityName",
+ "projectName",
+ "globalSubscriberId",
+ "subscriberName",
+ "productFamilyId",
+ "instanceName",
+ "subscriptionServiceType",
+ "lcpCloudRegionId",
+ "legacyRegion",
+ "tenantId",
+ "tenantName",
+ "aicZoneId",
+ "aicZoneName",
+ emptyMap(),
+ emptyMap(),
+ emptyMap(),
+ emptyMap(),
+ instanceParams,
+ true,
+ 1,
+ true,
+ true,
+ "testApi",
+ "instanceId",
+ "Delete",
+ "trackById",
+ true,
+ "statusMessage",
+ new VidNotions(InstantiationUI.ANY_ALACARTE_WHICH_NOT_EXCLUDED,
+ ModelCategory.INFRASTRUCTURE_VPN,
+ InstantiationUI.INFRASTRUCTURE_VPN,
+ InstantiationType.Macro)
+ );
+
+ verifySerializationAndDeserialization(serviceInstantiation);
+ }
+
+ @Test
+ public void serializeAndDeserializeVnf() throws Exception {
+
+ Vnf vnf = new Vnf(
+ newModelInfo(), "productFamilyId",
+ "instanceName",
+ "Upgrade",
+ "platformName",
+ "lcpCloudRegionId",
+ "legacyRegion",
+ "tenantId",
+ instanceParams,
+ "lineOfBusinessName",
+ true,
+ "instanceId",
+ emptyMap(),
+ "trackById",
+ true,
+ "statusMessage",
+ 5);
+
+ verifySerializationAndDeserialization(vnf);
+ }
+
+ @Test
+ public void serializeAndDeserializeVfModule() throws Exception {
+
+ ImmutableMap<String, String> supplementaryParams = ImmutableMap.of(
+ "uno", "1",
+ "dos", "2",
+ "tres", "3"
+ );
+
+ VfModule vfModule = new VfModule(
+ newModelInfo(),
+ "instanceName",
+ "volumeGroupInstanceName",
+ "Delete",
+ "lcpCloudRegionId",
+ "legacyRegion",
+ "tenantId",
+ instanceParams,
+ supplementaryParams,
+ true,
+ true,
+ "instanceId",
+ "trackById",
+ true,
+ "statusMessage",
+ true,
+ true,
+ 1);
+
+ verifySerializationAndDeserialization(vfModule);
+ }
+
+ @Test
+ public void VfModule_sdncPreLoad_shouldBeSerializedWithCorrectName() {
+
+ final boolean USE_PRELOAD = true;
+
+ VfModule vfModule = new VfModule(newModelInfo(), null, null, null,
+ null, null, null, null, null, false,
+ /* HERE ====> */ USE_PRELOAD,
+ null, null, null, null, null, null, null);
+
+ assertThat(vfModule, jsonPartEquals("sdncPreLoad", USE_PRELOAD));
+ assertThat(vfModule, jsonNodeAbsent("usePreload"));
+ }
+
+ @Test
+ public void VfModule_volumeGroupName_shouldBeSerializedWithCorrectName() {
+
+ final String VOLUME_GROUP_INSTANCE_NAME = "my volume group name";
+
+ VfModule vfModule = new VfModule(newModelInfo(), null,
+ /* HERE ====> */ VOLUME_GROUP_INSTANCE_NAME,
+ null, null, null, null, null, null,
+ false, null, null, null, null, null,
+ null, null, null);
+
+ assertThat(vfModule, jsonPartEquals("volumeGroupName", VOLUME_GROUP_INSTANCE_NAME));
+ assertThat(vfModule, jsonNodeAbsent("volumeGroupInstanceName"));
+ }
+
+ private ModelInfo newModelInfo() {
+ ModelInfo modelInfo = new ModelInfo();
+ setStringsInStringProperties(modelInfo);
+ return modelInfo;
+ }
+
+ private void verifySerializationAndDeserialization(Object object) throws Exception {
+
+ assertThatAllValuesAreNotDefaultValues(object);
+
+ String valueAsString = JACKSON_OBJECT_MAPPER.writeValueAsString(object);
+ Object objectReconstructed = JACKSON_OBJECT_MAPPER.readValue(valueAsString, object.getClass());
+
+ // verify that all fields' values were reconstructed
+ assertThat(objectReconstructed, samePropertyValuesAs(object));
+ }
+
+ private void assertThatAllValuesAreNotDefaultValues(Object object)
+ throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
+ assertThat("setup is expected to have no field with a default Java value",
+ PropertyUtils.describe(object).entrySet(),
+ not(hasItem(hasProperty("value",
+ either(nullValue())
+ .or(equalTo(0))
+ .or(equalTo(""))
+ .or(equalTo(false))
+ .or(equalTo(Create))))));
+ }
+
+}
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
index d41ce87bf..7c0abbe6e 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
@@ -23,7 +23,6 @@ package org.onap.vid.services;
import static java.util.Collections.emptyList;
import static java.util.Collections.emptyMap;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.IsEqual.equalTo;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
@@ -49,6 +48,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.inject.Inject;
import org.hibernate.SessionFactory;
+import org.jetbrains.annotations.NotNull;
import org.onap.portalsdk.core.domain.FusionObject;
import org.onap.portalsdk.core.service.DataAccessService;
import org.onap.vid.aai.AaiClientInterface;
@@ -56,6 +56,7 @@ import org.onap.vid.aai.ExceptionWithRequestInfo;
import org.onap.vid.job.Job.JobStatus;
import org.onap.vid.model.Action;
import org.onap.vid.model.ServiceInfo;
+import org.onap.vid.model.ServiceInfo.ServiceAction;
import org.onap.vid.model.VidNotions;
import org.onap.vid.model.serviceInstantiation.InstanceGroup;
import org.onap.vid.model.serviceInstantiation.Network;
@@ -67,7 +68,6 @@ import org.onap.vid.mso.model.ModelInfo;
import org.onap.vid.mso.rest.AsyncRequestStatus;
import org.onap.vid.mso.rest.RequestStatus;
import org.onap.vid.properties.Features;
-import org.onap.vid.services.AsyncInstantiationBusinessLogicTest.ServiceInfoComparator;
import org.onap.vid.utils.DaoUtils;
import org.onap.vid.utils.TimeUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -149,9 +149,19 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
});
}
+
protected void addNewServiceInfo(UUID uuid, String userId, String serviceName, LocalDateTime createDate,
LocalDateTime statusModifiedDate, JobStatus status, boolean isHidden, boolean retryEnabled,
String modelUUID) {
+ ServiceInfo serviceInfo = createServiceInfo(uuid, userId, serviceName, createDate, statusModifiedDate, status,
+ isHidden, retryEnabled, modelUUID);
+ dataAccessService.saveDomainObject(serviceInfo, getPropsMap());
+ setCreateDateToServiceInfo(uuid, createDate);
+ serviceCount++;
+ }
+ @NotNull
+ private ServiceInfo createServiceInfo(UUID uuid, String userId, String serviceName, LocalDateTime createDate,
+ LocalDateTime statusModifiedDate, JobStatus status, boolean isHidden, boolean retryEnabled, String modelUUID) {
ServiceInfo serviceInfo = new ServiceInfo();
serviceInfo.setJobId(uuid);
serviceInfo.setUserId(userId);
@@ -164,10 +174,18 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
serviceInfo.setRetryEnabled(retryEnabled);
serviceInfo.setServiceModelId(modelUUID);
serviceInfo.setHidden(isHidden);
+ return serviceInfo;
+ }
+
+ protected void addNewServiceInfoWithAction(UUID uuid, String userId, String serviceName, LocalDateTime createDate,
+ LocalDateTime statusModifiedDate, JobStatus status, boolean isHidden, boolean retryEnabled,
+ String modelUUID, ServiceAction action) {
+ ServiceInfo serviceInfo = createServiceInfo(uuid, userId, serviceName, createDate, statusModifiedDate, status,
+ isHidden, retryEnabled, modelUUID);
+ serviceInfo.setAction(action);
dataAccessService.saveDomainObject(serviceInfo, getPropsMap());
setCreateDateToServiceInfo(uuid, createDate);
serviceCount++;
-
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java b/vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java
index cb59129c3..efd9e2b27 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java
@@ -22,6 +22,7 @@ package org.onap.vid.services;
import static com.google.common.collect.Maps.newHashMap;
import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals;
+import static net.javacrumbs.jsonunit.JsonMatchers.jsonNodeAbsent;
import static net.javacrumbs.jsonunit.JsonMatchers.jsonPartEquals;
import static net.javacrumbs.jsonunit.core.Option.IGNORING_ARRAY_ORDER;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -47,7 +48,9 @@ import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.inject.Inject;
+import net.javacrumbs.jsonunit.ConfigurableJsonMatcher;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.BooleanUtils;
import org.hibernate.SessionFactory;
import org.mockito.Mock;
import org.mockito.Mockito;
@@ -611,19 +614,23 @@ public class MsoRequestBuilderTest extends AsyncInstantiationBaseTest {
assertThat(result, jsonEquals(expected).when(IGNORING_ARRAY_ORDER));
}
- @Test(dataProvider = "trueAndFalse", dataProviderClass = TestUtils.class)
- public void generateReplaceVfModuleRequest_whenRetainAssignmentsProvidedFromFrontend_retainAssignmentsToMsoIsTheSame(boolean retainAssignments) {
-
+ @Test(dataProvider = "trueAndFalseAndNull", dataProviderClass = TestUtils.class)
+ public void generateReplaceVfModuleRequest_whenRetainAssignmentsProvidedFromFrontend_retainAssignmentsToMsoIsTheSame(Boolean retainAssignments) {
assertThat(generatedVfModuleReplaceRequest(retainAssignments, null, null),
- jsonPartEquals("requestDetails.requestParameters.retainAssignments", retainAssignments));
+ jsonPartEqualsOrUndefined(
+ "requestDetails.requestParameters.retainAssignments", retainAssignments));
}
- @Test
- public void generateReplaceVfModuleRequest_whenRetainVolumeGroupIsTrue_rebuildVolumeGroupIsFalse() {
- boolean retainVolumeGroups = true;
-
+ @Test(dataProvider = "trueAndFalseAndNull", dataProviderClass = TestUtils.class)
+ public void generateReplaceVfModuleRequest_whenRetainVolumeGroupIsGiven_rebuildVolumeGroupIsNegated(Boolean retainVolumeGroups) {
assertThat(generatedVfModuleReplaceRequest(null, retainVolumeGroups, null),
- jsonPartEquals("requestDetails.requestParameters.rebuildVolumeGroups", false));
+ jsonPartEqualsOrUndefined("requestDetails.requestParameters.rebuildVolumeGroups", BooleanUtils.negate(retainVolumeGroups)));
+ }
+
+ private <T> ConfigurableJsonMatcher<T> jsonPartEqualsOrUndefined(String path, Boolean expected) {
+ return (expected != null)
+ ? jsonPartEquals(path, expected)
+ : jsonNodeAbsent(path);
}
@Test
diff --git a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java
index 857221a2a..862b8db8f 100644
--- a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java
+++ b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java
@@ -389,4 +389,9 @@ public class TestUtils {
return new Object[][]{{true}, {false}};
}
+ @DataProvider
+ public static Object[][] trueAndFalseAndNull() {
+ return new Boolean[][]{{Boolean.TRUE}, {Boolean.FALSE}, {null}};
+ }
+
}