aboutsummaryrefslogtreecommitdiffstats
path: root/bpmn/so-bpmn-tasks/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/so-bpmn-tasks/src/test/java')
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfmHttpServiceConfigurationTest.java56
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfmHttpServiceProviderImplTest.java139
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/MonitorCnfmCreateJobTaskTest.java152
3 files changed, 347 insertions, 0 deletions
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfmHttpServiceConfigurationTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfmHttpServiceConfigurationTest.java
new file mode 100644
index 0000000000..48325972ec
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfmHttpServiceConfigurationTest.java
@@ -0,0 +1,56 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2023 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.bpmn.infrastructure.adapter.cnfm.tasks;
+
+import static org.junit.Assert.assertNotNull;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.so.configuration.rest.HttpComponentsClientConfiguration;
+import org.onap.so.rest.service.HttpRestServiceProvider;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+
+/**
+ * @author Raviteja Karumuri (raviteja.karumuri@est.tech)
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class CnfmHttpServiceConfigurationTest {
+
+ @Mock
+ private HttpComponentsClientConfiguration httpComponentsClientConfiguration;
+ @Mock
+ private CloseableHttpClient httpclient;
+
+ @Test
+ public void cnfmHttpRestServiceProvider_NotNull() {
+
+ final CnfmHttpServiceConfiguration objForTest = new CnfmHttpServiceConfiguration();
+ HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpclient);
+ Mockito.when(httpComponentsClientConfiguration.httpComponentsClientHttpRequestFactory())
+ .thenReturn(requestFactory);
+ final HttpRestServiceProvider returnedValue = objForTest
+ .cnfmHttpRestServiceProvider(objForTest.cnfmRestTemplateBean(httpComponentsClientConfiguration));
+ assertNotNull(returnedValue);
+ }
+}
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfmHttpServiceProviderImplTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfmHttpServiceProviderImplTest.java
new file mode 100644
index 0000000000..aac685fe37
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfmHttpServiceProviderImplTest.java
@@ -0,0 +1,139 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2023 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.bpmn.infrastructure.adapter.cnfm.tasks;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+import java.net.URI;
+import java.util.Optional;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.so.cnfm.lcm.model.AsInstance;
+import org.onap.so.cnfm.lcm.model.CreateAsRequest;
+import org.onap.so.cnfm.lcm.model.InstantiateAsRequest;
+import org.onap.so.rest.service.HttpRestServiceProvider;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * @author Raviteja Karumuri (raviteja.karumuri@est.tech)
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class CnfmHttpServiceProviderImplTest {
+
+ @Mock
+ private CnfmUrlProvider cnfmUrlProvider;
+ @Mock
+ private HttpRestServiceProvider httpRestServiceProvider;
+ @Mock
+ private ResponseEntity<AsInstance> responseEntity;
+
+ private final String createURL = "http://so-cnfm-lcm.onap:9888/so/so-cnfm/v1/api/aslcm/v1/as_instances";
+ private final String instantiateURL = "http://so-cnfm-lcm.onap:9888/so/so-cnfm/v1/api/aslcm/v1/as_instances"
+ + getAsInstance().getAsInstanceid() + "/instantiate";
+ private CnfmHttpServiceProviderImpl cnfmHttpServiceProviderImpl;
+ private final URI uri = URI.create("sample");
+ private final CreateAsRequest createAsRequest = new CreateAsRequest();
+ private final InstantiateAsRequest instantiateAsRequest = new InstantiateAsRequest();
+
+ @Before
+ public void setup() {
+ cnfmHttpServiceProviderImpl = new CnfmHttpServiceProviderImpl(cnfmUrlProvider, httpRestServiceProvider);
+ when(httpRestServiceProvider.postHttpRequest(Mockito.any(), Mockito.anyString(), eq(AsInstance.class)))
+ .thenReturn(responseEntity);
+ }
+
+ @Test
+ public void invokeCreateAsRequest_withStatuscodeSuccess_hasBody() {
+
+ when(cnfmUrlProvider.getCreateAsRequestUrl()).thenReturn(createURL);
+ when(responseEntity.getStatusCode()).thenReturn(HttpStatus.ACCEPTED);
+ when(responseEntity.getBody()).thenReturn(getAsInstance());
+ when(responseEntity.hasBody()).thenReturn(true);
+ final Optional<AsInstance> returnedContent = cnfmHttpServiceProviderImpl.invokeCreateAsRequest(createAsRequest);
+ assertEquals(returnedContent.orElseThrow().getAsInstanceid(), getAsInstance().getAsInstanceid());
+ }
+
+ @Test
+ public void invokeCreateAsRequest_withStatuscodeSuccess_hasNoBody() {
+
+ when(cnfmUrlProvider.getCreateAsRequestUrl()).thenReturn(createURL);
+ when(responseEntity.getStatusCode()).thenReturn(HttpStatus.ACCEPTED);
+ final Optional<AsInstance> returnedContent = cnfmHttpServiceProviderImpl.invokeCreateAsRequest(createAsRequest);
+ assertFalse(returnedContent.isPresent());
+ }
+
+
+ @Test
+ public void invokeCreateAsRequest_withStatuscodeSuccess_hasBody_emptyInstanceID() {
+
+ AsInstance emptyInstanceID = getAsInstance();
+ emptyInstanceID.setAsInstanceid(null);
+ when(cnfmUrlProvider.getCreateAsRequestUrl()).thenReturn(createURL);
+ when(responseEntity.getStatusCode()).thenReturn(HttpStatus.ACCEPTED);
+ when(responseEntity.getBody()).thenReturn(emptyInstanceID);
+ when(responseEntity.hasBody()).thenReturn(true);
+ final Optional<AsInstance> returnedContent = cnfmHttpServiceProviderImpl.invokeCreateAsRequest(createAsRequest);
+ assertFalse(returnedContent.isPresent());
+ }
+
+ @Test
+ public void invokeCreateAsRequest_withStatuscodeNotSuccess_hasBody_emptyInstanceID() {
+
+ AsInstance emptyInstanceID = getAsInstance();
+ emptyInstanceID.setAsInstanceid(null);
+ when(cnfmUrlProvider.getCreateAsRequestUrl()).thenReturn(createURL);
+ when(responseEntity.getStatusCode()).thenReturn(HttpStatus.BAD_REQUEST);
+ final Optional<AsInstance> returnedContent = cnfmHttpServiceProviderImpl.invokeCreateAsRequest(createAsRequest);
+ assertFalse(returnedContent.isPresent());
+ }
+
+
+ @Test
+ public void InstantiateAsRequest_withStatuscodeSuccess() {
+ final String asinstanceId = getAsInstance().getAsInstanceid();
+ when(cnfmUrlProvider.getInstantiateAsRequestUrl(asinstanceId)).thenReturn(instantiateURL);
+ when(responseEntity.getStatusCode()).thenReturn(HttpStatus.ACCEPTED);
+ when(responseEntity.getHeaders()).thenReturn(getHttpHeaders());
+ final Optional<URI> returnedContent =
+ cnfmHttpServiceProviderImpl.invokeInstantiateAsRequest(instantiateAsRequest, asinstanceId);
+ assertEquals(uri.toString(), returnedContent.orElseThrow().toString());
+ }
+
+ private AsInstance getAsInstance() {
+ AsInstance asInstance = new AsInstance();
+ asInstance.setAsInstanceid("12345");
+ return asInstance;
+ }
+
+ private HttpHeaders getHttpHeaders() {
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.setLocation(uri);
+ return httpHeaders;
+ }
+}
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/MonitorCnfmCreateJobTaskTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/MonitorCnfmCreateJobTaskTest.java
new file mode 100644
index 0000000000..c32f6dd905
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/MonitorCnfmCreateJobTaskTest.java
@@ -0,0 +1,152 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2023 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.bpmn.infrastructure.adapter.cnfm.tasks;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import java.net.URI;
+import java.util.Optional;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.client.exception.ExceptionBuilder;
+import org.onap.so.cnfm.lcm.model.AsLcmOpOcc;
+
+/**
+ * @author Raviteja Karumuri (raviteja.karumuri@est.tech)
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class MonitorCnfmCreateJobTaskTest {
+
+ private final BuildingBlockExecution stubbedExecution = new StubbedBuildingBlockExecution();
+ public static final String CREATE_CNF_STATUS_RESPONSE_PARAM_NAME = "createCnfStatusResponse";
+ private final String CNFM_REQUEST_STATUS_CHECK_URL = "CnfmStatusCheckUrl";
+ public static final String OPERATION_STATUS_PARAM_NAME = "operationStatus";
+ private MonitorCnfmCreateJobTask monitorCnfmCreateJobTask;
+ @Mock
+ private CnfmHttpServiceProvider mockedCnfmHttpServiceProvider;
+ @Mock
+ private ExceptionBuilder exceptionUtil;
+
+ @Before
+ public void setup() {
+ monitorCnfmCreateJobTask = new MonitorCnfmCreateJobTask(mockedCnfmHttpServiceProvider, exceptionUtil);
+ }
+
+ @Test
+ public void getCurrentOperationStatus_completed() {
+ stubbedExecution.setVariable(CNFM_REQUEST_STATUS_CHECK_URL, URI.create("sampleURL"));
+ when(mockedCnfmHttpServiceProvider.getInstantiateOperationJobStatus(Mockito.anyString()))
+ .thenReturn(getAsLcmOpOcc());
+ monitorCnfmCreateJobTask.getCurrentOperationStatus(stubbedExecution);
+ assertEquals(AsLcmOpOcc.OperationStateEnum.COMPLETED,
+ stubbedExecution.getVariable(OPERATION_STATUS_PARAM_NAME));
+ }
+
+ @Test
+ public void test_getCurrentOperationStatus_Exception() {
+ stubbedExecution.setVariable(CNFM_REQUEST_STATUS_CHECK_URL, URI.create("sampleURL"));
+ when(mockedCnfmHttpServiceProvider.getInstantiateOperationJobStatus(Mockito.anyString()))
+ .thenThrow(new RuntimeException());
+ monitorCnfmCreateJobTask.getCurrentOperationStatus(stubbedExecution);
+ verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1209), anyString(),
+ any());
+ }
+
+ @Test
+ public void test_checkIfOperationWasSuccessful_status_completed() {
+ final MonitorCnfmCreateJobTask mockedMonitorCnfmCreateJobTask = Mockito.spy(monitorCnfmCreateJobTask);
+ mockedMonitorCnfmCreateJobTask.checkIfOperationWasSuccessful(stubbedExecution);
+ verify(mockedMonitorCnfmCreateJobTask, times(1)).checkIfOperationWasSuccessful(stubbedExecution);
+ }
+
+ @Test
+ public void test_checkIfOperationWasSuccessful_status_Failed() {
+ Optional<AsLcmOpOcc> mockedAsLcmOpOcc = getAsLcmOpOcc();
+ mockedAsLcmOpOcc.orElseThrow().setOperationState(AsLcmOpOcc.OperationStateEnum.FAILED);
+ stubbedExecution.setVariable(OPERATION_STATUS_PARAM_NAME, AsLcmOpOcc.OperationStateEnum.FAILED);
+ stubbedExecution.setVariable(CREATE_CNF_STATUS_RESPONSE_PARAM_NAME, mockedAsLcmOpOcc.orElseThrow());
+ monitorCnfmCreateJobTask.checkIfOperationWasSuccessful(stubbedExecution);
+ verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1207), anyString(),
+ any());
+ }
+
+ @Test
+ public void test_checkIfOperationWasSuccessful_status_Null() {
+ stubbedExecution.setVariable(OPERATION_STATUS_PARAM_NAME, null);
+ monitorCnfmCreateJobTask.checkIfOperationWasSuccessful(stubbedExecution);
+ verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1206), anyString(),
+ any());
+ }
+
+ @Test
+ public void test_hasOperationFinished_status_completed() {
+ stubbedExecution.setVariable(OPERATION_STATUS_PARAM_NAME, AsLcmOpOcc.OperationStateEnum.COMPLETED);
+ boolean returnedValue = monitorCnfmCreateJobTask.hasOperationFinished(stubbedExecution);
+ assertTrue(returnedValue);
+ }
+
+ @Test
+ public void test_hasOperationFinished_status_failed() {
+ stubbedExecution.setVariable(OPERATION_STATUS_PARAM_NAME, AsLcmOpOcc.OperationStateEnum.FAILED);
+ boolean returnedValue = monitorCnfmCreateJobTask.hasOperationFinished(stubbedExecution);
+ assertTrue(returnedValue);
+ }
+
+ @Test
+ public void test_hasOperationFinished_status_rollback() {
+ stubbedExecution.setVariable(OPERATION_STATUS_PARAM_NAME, AsLcmOpOcc.OperationStateEnum.ROLLED_BACK);
+ boolean returnedValue = monitorCnfmCreateJobTask.hasOperationFinished(stubbedExecution);
+ assertTrue(returnedValue);
+ }
+
+ @Test
+ public void test_hasOperationFinished_status_null() {
+ stubbedExecution.setVariable(OPERATION_STATUS_PARAM_NAME, null);
+ boolean returnedValue = monitorCnfmCreateJobTask.hasOperationFinished(stubbedExecution);
+ assertFalse(returnedValue);
+ }
+
+ @Test
+ public void test_timeOutLogFailure() {
+ monitorCnfmCreateJobTask.timeOutLogFailue(stubbedExecution);
+ verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1205), anyString(),
+ any());
+ }
+
+ private Optional<AsLcmOpOcc> getAsLcmOpOcc() {
+ final AsLcmOpOcc asLcmOpOcc = new AsLcmOpOcc();
+ asLcmOpOcc.setOperationState(AsLcmOpOcc.OperationStateEnum.COMPLETED);
+ return Optional.of(asLcmOpOcc);
+ }
+
+}