summaryrefslogtreecommitdiffstats
path: root/bpmn/so-bpmn-tasks/src/test
diff options
context:
space:
mode:
authork.kazak <k.kazak@samsung.com>2019-02-19 09:06:56 +0100
committerk.kazak <k.kazak@samsung.com>2019-02-19 09:06:56 +0100
commitfb5dd4e22d3793c9871542222cb6361c5e257f35 (patch)
tree316465617f90248a13df3da4d76c986799809a5a /bpmn/so-bpmn-tasks/src/test
parent2c46078b2731081fa79b4af0e22a39e6641010ee (diff)
fix sonar potential nullpointer
AppcRunTasks: fix potential null pointer if vnf = null AppcRunTasksTest: add tests for this case and the method itself Change-Id: I63b37670541ef5ff31b03b0336d990677b753fc5 Issue-ID: SO-1516 Signed-off-by: k.kazak <k.kazak@samsung.com>
Diffstat (limited to 'bpmn/so-bpmn-tasks/src/test')
-rw-r--r--bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksTest.java120
1 files changed, 116 insertions, 4 deletions
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksTest.java
index 114066aae3..7495cc1e8d 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksTest.java
@@ -4,6 +4,8 @@
* ================================================================================
* Copyright (C) 2017 - 2018 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
@@ -20,19 +22,32 @@
package org.onap.so.bpmn.infrastructure.appc.tasks;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import org.junit.Test;
+import org.mockito.InjectMocks;
import org.onap.appc.client.lcm.model.Action;
+import org.onap.so.bpmn.BaseTaskTest;
import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
+import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
+import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
+import org.onap.so.client.exception.BBObjectNotFoundException;
+import org.onap.so.db.catalog.beans.ControllerSelectionReference;
-public class AppcRunTasksTest {
+public class AppcRunTasksTest extends BaseTaskTest {
-
+ @InjectMocks
private AppcRunTasks appcRunTasks = new AppcRunTasks();
+
@Test
public void mapRollbackVariablesTest() {
@@ -53,4 +68,101 @@ public class AppcRunTasksTest {
appcRunTasks.mapRollbackVariables(mock, Action.ResumeTraffic, "0");
verify(mock, times(1)).setVariable("rollbackQuiesceTraffic", false);
}
+
+ @Test
+ public void runAppcCommandVnfNull() throws BBObjectNotFoundException {
+ execution.getLookupMap().put(ResourceKey.GENERIC_VNF_ID, "NULL-TEST");
+ fillRequiredAppcExecutionFields();
+ when(extractPojosForBB.extractByKey(eq(execution), eq(ResourceKey.GENERIC_VNF_ID), eq("NULL-TEST")))
+ .thenReturn(null);
+ when(catalogDbClient.getControllerSelectionReferenceByVnfTypeAndActionCategory(
+ isNull(), eq(Action.Lock.toString()))).
+ thenThrow(new IllegalArgumentException("name or values is null"));
+
+ appcRunTasks.runAppcCommand(execution, Action.Lock);
+
+ // if vnf = null -> vnfType = null ->
+ // IllegalArgumentException will be thrown in catalogDbClient.getControllerSelectionReferenceByVnfTypeAndActionCategory
+ verify(exceptionUtil, times(1)).
+ buildAndThrowWorkflowException(
+ any(BuildingBlockExecution.class), eq(1002), eq("name or values is null"));
+ }
+
+ @Test
+ public void runAppcCommandBBObjectNotFoundException() throws BBObjectNotFoundException {
+ execution.getLookupMap().put(ResourceKey.GENERIC_VNF_ID, "EXCEPTION-TEST");
+ fillRequiredAppcExecutionFields();
+ when(extractPojosForBB.extractByKey(eq(execution), eq(ResourceKey.GENERIC_VNF_ID), eq("EXCEPTION-TEST")))
+ .thenThrow(new BBObjectNotFoundException());
+
+ appcRunTasks.runAppcCommand(execution, Action.Lock);
+
+ verify(exceptionUtil, times(1)).
+ buildAndThrowWorkflowException(
+ any(BuildingBlockExecution.class), eq(7000), eq("No valid VNF exists"));
+ }
+
+ @Test
+ public void runAppcCommandVfModuleNull() throws BBObjectNotFoundException {
+ execution.getLookupMap().put(ResourceKey.GENERIC_VNF_ID, "SUCCESS-TEST");
+ fillRequiredAppcExecutionFields();
+ GenericVnf genericVnf = getTestGenericVnf();
+ when(extractPojosForBB.extractByKey(eq(execution), eq(ResourceKey.GENERIC_VNF_ID), eq("SUCCESS-TEST")))
+ .thenReturn(genericVnf);
+ mockReferenceResponse();
+ execution.getLookupMap().put(ResourceKey.VF_MODULE_ID, "VF-MODULE-ID-TEST");
+ when(extractPojosForBB.extractByKey(eq(execution), eq(ResourceKey.VF_MODULE_ID), eq("VF-MODULE-ID-TEST")))
+ .thenReturn(null);
+ when(appCClient.getErrorCode()).thenReturn("0");
+
+ appcRunTasks.runAppcCommand(execution, Action.Lock);
+
+ assertEquals(true, execution.getVariable("rollbackVnfLock"));
+ }
+
+ @Test
+ public void runAppcCommand() throws BBObjectNotFoundException {
+ execution.getLookupMap().put(ResourceKey.GENERIC_VNF_ID, "SUCCESS-TEST");
+ fillRequiredAppcExecutionFields();
+ GenericVnf genericVnf = getTestGenericVnf();
+ when(extractPojosForBB.extractByKey(eq(execution), eq(ResourceKey.GENERIC_VNF_ID), eq("SUCCESS-TEST")))
+ .thenReturn(genericVnf);
+ mockReferenceResponse();
+ execution.getLookupMap().put(ResourceKey.VF_MODULE_ID, "VF-MODULE-ID-TEST");
+ VfModule vfModule = new VfModule();
+ vfModule.setVfModuleId("VF-MODULE-ID");
+ when(extractPojosForBB.extractByKey(eq(execution), eq(ResourceKey.VF_MODULE_ID), eq("VF-MODULE-ID-TEST")))
+ .thenReturn(vfModule);
+ when(appCClient.getErrorCode()).thenReturn("0");
+
+ appcRunTasks.runAppcCommand(execution, Action.Lock);
+
+ assertEquals(true, execution.getVariable("rollbackVnfLock"));
+ }
+
+ private void mockReferenceResponse() {
+ ControllerSelectionReference reference = new ControllerSelectionReference();
+ reference.setControllerName("TEST-CONTROLLER-NAME");
+ when(catalogDbClient.getControllerSelectionReferenceByVnfTypeAndActionCategory(
+ eq("TEST-VNF-TYPE"), eq(Action.Lock.toString()))).thenReturn(reference);
+ }
+
+ private void fillRequiredAppcExecutionFields() {
+ RequestContext context = new RequestContext();
+ context.setMsoRequestId("TEST-MSO-ID");
+ execution.setVariable("aicIdentity", "AIC-TEST");
+ execution.setVariable("vmIdList", "VM-ID-LIST-TEST");
+ execution.setVariable("vserverIdList", "VSERVER-ID-LIST");
+ execution.setVariable("identityUrl", "IDENTITY-URL-TEST");
+ execution.getGeneralBuildingBlock().setRequestContext(context);
+ }
+
+ private GenericVnf getTestGenericVnf() {
+ GenericVnf genericVnf = new GenericVnf();
+ genericVnf.setVnfId("TEST-VNF-ID");
+ genericVnf.setVnfType("TEST-VNF-TYPE");
+ genericVnf.setVnfName("TEST-VNF-NAME");
+ genericVnf.setIpv4OamAddress("129.0.0.1");
+ return genericVnf;
+ }
}