summaryrefslogtreecommitdiffstats
path: root/dcaedt_tools/src/test/java/DeployTemplateTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'dcaedt_tools/src/test/java/DeployTemplateTest.java')
-rw-r--r--dcaedt_tools/src/test/java/DeployTemplateTest.java138
1 files changed, 118 insertions, 20 deletions
diff --git a/dcaedt_tools/src/test/java/DeployTemplateTest.java b/dcaedt_tools/src/test/java/DeployTemplateTest.java
index f46375a..f1c3d3b 100644
--- a/dcaedt_tools/src/test/java/DeployTemplateTest.java
+++ b/dcaedt_tools/src/test/java/DeployTemplateTest.java
@@ -3,13 +3,14 @@
* SDC
* ================================================================================
* Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (c) 2019 Samsung
* ================================================================================
* 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.
@@ -18,27 +19,57 @@
* ============LICENSE_END=========================================================
*/
-import com.google.gson.JsonObject;
-import json.templateInfo.TemplateInfo;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.InjectMocks;
-import tools.DeployTemplate;
-
-import java.util.*;
-
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
+
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.onap.sdc.dcae.composition.restmodels.CreateVFCMTRequest;
+import org.onap.sdc.dcae.composition.restmodels.sdc.ResourceDetailed;
+import org.springframework.web.client.ResourceAccessException;
+
+import com.google.gson.JsonObject;
+
+import json.templateInfo.TemplateInfo;
+import tools.DeployTemplate;
+
public class DeployTemplateTest extends BaseTest {
@InjectMocks
DeployTemplate deployTemplate;
private Map<TemplateInfo, JsonObject> templateInfoToJsonObjectMap;
+ private TemplateInfo vfcmtTemplateInfo;
+
+ private static final String VERIFY_FAILED_MESSAGE =
+ "Deployment verify finished with errors, found only: 1 of 2 vfcmts";
+ private static final String RESOURCE_ACCESS_EXCEPTION_MESSAGE = "Permission denny!";
+ private static final String CREATE_RESOURCE_FAILED_MESSAGE =
+ String.format("Failed create vfcmt: %s, With general message: %s", TEMPLATE_INFO_NAME,
+ RESOURCE_ACCESS_EXCEPTION_MESSAGE);
+ private static final String UPDATE_RESOURCE_FAILED_MESSAGE =
+ String.format("Failed update vfcmt: %s, With general message: %s", VFCMT_NAME1,
+ RESOURCE_ACCESS_EXCEPTION_MESSAGE);
+ private static final String NOT_UPDATE_RESOURCE_MESSAGE =
+ String.format("vfcmt: %s found, but didn't update.", VFCMT_NAME1);
+ private final ResourceAccessException createResourceException =
+ new ResourceAccessException(RESOURCE_ACCESS_EXCEPTION_MESSAGE);
+ private static final String BAD_USER_ID = "badUserId";
+ private static final String OPERATION_NOT_ALLOWED_FOR_USER_MESSAGE = String.format(
+ "User conflicts. Operation not allowed for user %s on resource checked out by %s",
+ BAD_USER_ID, USER_ID);
+ private static final String UPDATE_FAILED_MESSAGE =
+ String.format("Failed update vfcmt: %s, cannot checkout vfcmt", VFCMT_NAME1);
@Before
@Override
@@ -50,15 +81,15 @@ public class DeployTemplateTest extends BaseTest {
when(dcaeRestClient.saveComposition(any(), any())).thenReturn("Composition Created");
templateInfoToJsonObjectMap = new HashMap<>();
+ vfcmtTemplateInfo = new TemplateInfo();
+ vfcmtTemplateInfo.setName(VFCMT_NAME1);
+ vfcmtTemplateInfo.setFlowType(TEMPLATE_INFO_FLOWTYPE);
+ vfcmtTemplateInfo.setCategory("category");
+ vfcmtTemplateInfo.setSubCategory("subCategory");
+ vfcmtTemplateInfo.setDescription("description");
+ vfcmtTemplateInfo.setUpdateIfExist(true);
+ templateInfoToJsonObjectMap.put(vfcmtTemplateInfo, new JsonObject());
TemplateInfo templateInfo = new TemplateInfo();
- templateInfo.setName(VFCMT_NAME1);
- templateInfo.setFlowType(TEMPLATE_INFO_FLOWTYPE);
- templateInfo.setCategory("category");
- templateInfo.setSubCategory("subCategory");
- templateInfo.setDescription("description");
- templateInfo.setUpdateIfExist(true);
- templateInfoToJsonObjectMap.put(templateInfo, new JsonObject());
- templateInfo = new TemplateInfo();
templateInfo.setName(TEMPLATE_INFO_NAME);
templateInfo.setFlowType(TEMPLATE_INFO_FLOWTYPE);
templateInfo.setCategory("category");
@@ -74,9 +105,76 @@ public class DeployTemplateTest extends BaseTest {
}
@Test
- public void deploy_failedSaving_failedVerify() {
+ public void deployFailedSaving() {
when(dcaeRestClient.saveComposition(anyString(), anyString())).thenReturn("failed");
deployTemplate.deploy(templateInfoToJsonObjectMap);
verify(report, times(4)).addErrorMessage(anyString());
}
+
+ @Test
+ public void deployFailedVerify() {
+ mockGetAllVfcmtWithBadResources();
+ deployTemplate.deploy(templateInfoToJsonObjectMap);
+ verify(report, times(1)).addErrorMessage(VERIFY_FAILED_MESSAGE);
+ }
+
+ @Test
+ public void deployFailedCreateResource() {
+ when(dcaeRestClient.createResource(any(CreateVFCMTRequest.class)))
+ .thenThrow(createResourceException);
+ deployTemplate.deploy(templateInfoToJsonObjectMap);
+ verify(report, times(1)).addErrorMessage(CREATE_RESOURCE_FAILED_MESSAGE);
+ verify(report, times(1)).setStatusCode(2);
+ }
+
+ @Test
+ public void deployButOperationNotAllowForTheUser() {
+ when(dcaeRestClient.getUserId()).thenReturn(BAD_USER_ID);
+ deployTemplate.deploy(templateInfoToJsonObjectMap);
+ verify(report, times(1)).addErrorMessage(OPERATION_NOT_ALLOWED_FOR_USER_MESSAGE);
+ verify(report, times(1)).addErrorMessage(UPDATE_FAILED_MESSAGE);
+ }
+
+ @Test
+ public void deployAndCheckVfcmt() {
+ mockGetAllVfcmtWithCertifiedResource();
+ deployTemplate.deploy(templateInfoToJsonObjectMap);
+ }
+
+ @Test
+ public void deployAndCheckVfcmtFaild() {
+ mockGetAllVfcmtWithCertifiedResource();
+ when(dcaeRestClient.checkoutVfcmt(UUID1)).thenThrow(createResourceException);
+ deployTemplate.deploy(templateInfoToJsonObjectMap);
+ verify(report, times(1)).addErrorMessage(UPDATE_RESOURCE_FAILED_MESSAGE);
+ verify(report, times(1)).setStatusCode(2);
+ }
+
+ @Test
+ public void deployAndNotUpdate() {
+ vfcmtTemplateInfo.setUpdateIfExist(false);
+ deployTemplate.deploy(templateInfoToJsonObjectMap);
+ verify(report, times(1)).addNotUpdatedMessage(NOT_UPDATE_RESOURCE_MESSAGE);
+ }
+
+ private void mockGetAllVfcmtWithBadResources() {
+ List<ResourceDetailed> resourceDetaileds = new ArrayList<>();
+ resourceDetaileds.add(createResource("NOT_CERTIFIED_CHECKOUT"));
+ when(dcaeRestClient.getAllVfcmts()).thenReturn(resourceDetaileds);
+ }
+
+ private void mockGetAllVfcmtWithCertifiedResource() {
+ List<ResourceDetailed> resourceDetaileds = new ArrayList<>();
+ resourceDetaileds.add(createResource("READY_FOR_CERTIFICATION"));
+ when(dcaeRestClient.getAllVfcmts()).thenReturn(resourceDetaileds);
+ }
+
+ private ResourceDetailed createResource(String status) {
+ ResourceDetailed resourceDetailed = new ResourceDetailed();
+ resourceDetailed.setName(VFCMT_NAME1);
+ resourceDetailed.setUuid(UUID1);
+ resourceDetailed.setLifecycleState(status);
+ resourceDetailed.setLastUpdaterUserId(USER_ID);
+ return resourceDetailed;
+ }
}