summaryrefslogtreecommitdiffstats
path: root/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap
diff options
context:
space:
mode:
Diffstat (limited to 'appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap')
-rw-r--r--appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/CommandExecutionTaskTest.java295
-rw-r--r--appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandExecutor.java215
-rw-r--r--appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandTask.java231
3 files changed, 331 insertions, 410 deletions
diff --git a/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/CommandExecutionTaskTest.java b/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/CommandExecutionTaskTest.java
deleted file mode 100644
index af62a06f6..000000000
--- a/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/CommandExecutionTaskTest.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP : APPC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Copyright (C) 2017 Amdocs
- * =============================================================================
- * 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.
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.appc.executor;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.onap.appc.domainmodel.lcm.ActionIdentifiers;
-import org.onap.appc.domainmodel.lcm.CommonHeader;
-import org.onap.appc.domainmodel.lcm.Flags;
-import org.onap.appc.domainmodel.lcm.RequestContext;
-import org.onap.appc.domainmodel.lcm.ResponseContext;
-import org.onap.appc.domainmodel.lcm.RuntimeContext;
-import org.onap.appc.domainmodel.lcm.Status;
-import org.onap.appc.domainmodel.lcm.VNFContext;
-import org.onap.appc.domainmodel.lcm.VNFOperation;
-import org.onap.appc.executor.impl.CommandTask;
-import org.onap.appc.executor.impl.CommandTaskFactory;
-import org.onap.appc.executor.impl.LCMCommandTask;
-import org.onap.appc.executor.impl.LCMReadonlyCommandTask;
-import org.onap.appc.executor.objects.CommandResponse;
-import org.onap.appc.lifecyclemanager.LifecycleManager;
-import org.onap.appc.requesthandler.RequestHandler;
-import org.onap.appc.workflow.WorkFlowManager;
-import org.onap.appc.workflow.objects.WorkflowResponse;
-import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
-import org.onap.ccsdk.sli.adaptors.aai.AAIService;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceReference;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-import java.time.Instant;
-
-import static junit.framework.Assert.assertEquals;
-import static org.mockito.Matchers.*;
-
-@SuppressWarnings("unchecked")
-@RunWith(PowerMockRunner.class)
-@PrepareForTest( {FrameworkUtil.class, CommandTask.class, LCMCommandTask.class})
-public class CommandExecutionTaskTest {
-
- private final String TTL_FLAG= "TTL";
- private final String API_VERSION= "2.0.0";
- private final String ORIGINATOR_ID= "1";
- private CommandTaskFactory factory ;
-
- private RequestHandler requestHandler;
- private WorkFlowManager workflowManager;
- private AAIService aaiService;
- private LifecycleManager lifecyclemanager;
-
- private final BundleContext bundleContext=Mockito.mock(BundleContext.class);
- private final Bundle bundleService=Mockito.mock(Bundle.class);
- private final ServiceReference sref=Mockito.mock(ServiceReference.class);
-
- @Before
- public void init() throws SvcLogicException {
-
- // ***
- AAIService aaiService = Mockito.mock(AAIService.class);
- PowerMockito.mockStatic(FrameworkUtil.class);
- PowerMockito.when(FrameworkUtil.getBundle(AAIService.class)).thenReturn(bundleService);
- PowerMockito.when(bundleService.getBundleContext()).thenReturn(bundleContext);
- PowerMockito.when(bundleContext.getServiceReference(AAIService.class.getName())).thenReturn(sref);
- PowerMockito.when(bundleContext.<AAIService>getService(sref)).thenReturn(aaiService);
- PowerMockito.when(aaiService.query(anyString(),anyBoolean(),anyString(),anyString(),anyString(),
- anyString(), anyObject())).thenAnswer(invocation -> {
- Object[] args = invocation.getArguments();
- SvcLogicContext ctx =(SvcLogicContext)args[6];
- String prefix = (String)args[4];
- String key = (String)args[3];
- if(key.contains("'28'")){
- return SvcLogicResource.QueryStatus.FAILURE ;
- }else if ( key.contains("'8'")) {
- return SvcLogicResource.QueryStatus.NOT_FOUND ;
- }else {
- ctx.setAttribute(prefix + ".vnf-type", "FIREWALL");
- ctx.setAttribute(prefix + ".orchestration-status", "INSTANTIATED");
- }
- return SvcLogicResource.QueryStatus.SUCCESS ;
- });
- PowerMockito.when(aaiService.update(anyString(), anyString(), anyObject(), anyString(),
- anyObject())).thenReturn(SvcLogicResource.QueryStatus.SUCCESS);
-
- requestHandler = Mockito.mock(RequestHandler.class);
- workflowManager = Mockito.mock(WorkFlowManager.class);
- lifecyclemanager = Mockito.mock(LifecycleManager.class );
-
- factory = new CommandTaskFactory();
- factory.setLifecyclemanager(lifecyclemanager);
- factory.setWorkflowManager(workflowManager);
- factory.setVnfRequestHandler(requestHandler);
- Mockito.when(workflowManager.executeWorkflow(anyObject())).thenReturn(getWorkflowResponse ());
- }
-
-
- @Test
- public void testFactory(){
- CommandTask task;
- Instant timeStamp = Instant.now();
- String requestId = "1";
- RuntimeContext commandExecutorInputConfigure = pouplateCommandExecutorInput("FIREWALL", 30, "1.0",
- timeStamp, API_VERSION, requestId, ORIGINATOR_ID, "2", VNFOperation.Configure,"15","") ;
- task = factory.getExecutionTask(commandExecutorInputConfigure);
- assertEquals(LCMCommandTask.class,task.getClass() );
- RuntimeContext commandExecutorInputSync = pouplateCommandExecutorInput("FIREWALL", 30, "1.0",
- timeStamp, API_VERSION, requestId, ORIGINATOR_ID, "2", VNFOperation.Sync,"15","") ;
- task = factory.getExecutionTask(commandExecutorInputSync);
- assertEquals(LCMReadonlyCommandTask.class,task.getClass() );
-
- }
-
-
-
- @Test
- public void testOnRequestCompletion(){
- Mockito.doNothing().when(requestHandler).onRequestTTLEnd(anyObject(),anyBoolean());
- RuntimeContext request = pouplateCommandExecutorInput("FIREWALL", 30, "1.0",
- Instant.now(), API_VERSION, "11", ORIGINATOR_ID, "", VNFOperation.Configure,
- "1", "");
- CommandResponse response = getCommandResponse(VNFOperation.Configure, true, "11",
- "","1");
- LCMCommandTask executionTask = new LCMCommandTask(request, requestHandler,workflowManager,lifecyclemanager);
- executionTask.onRequestCompletion(response);
- }
-
- @Test
- public void testRunGetConfig(){
- RuntimeContext request = pouplateCommandExecutorInput("FIREWALL", 30, "1.0",
- Instant.now(), API_VERSION, "11", ORIGINATOR_ID, "", VNFOperation.Sync,
- "1", "");
- LCMReadonlyCommandTask readonlyCommandTask = new LCMReadonlyCommandTask(
- request, requestHandler,workflowManager);
- readonlyCommandTask.run();
- }
-
- @Test
- public void testRun(){
- RuntimeContext request = pouplateCommandExecutorInput("FIREWALL", 30, "1.0",
- Instant.now(), API_VERSION, "11", ORIGINATOR_ID, "", VNFOperation.Sync,
- "1", "");
- LCMCommandTask executionTask = new LCMCommandTask(request, requestHandler,workflowManager,lifecyclemanager);
- executionTask.run();
- }
-
- @Test
- public void testRunNegative(){
- RuntimeContext request = pouplateCommandExecutorInput("FIREWALL", 30, "1.0",
- Instant.now(), API_VERSION, "11", ORIGINATOR_ID, "", VNFOperation.Sync,
- "1", "");
- LCMCommandTask executionTask = new LCMCommandTask(request, requestHandler,workflowManager,lifecyclemanager);
- executionTask.run();
- }
-
-
- private CommandResponse getCommandResponse(VNFOperation action,
- boolean success,
- String responseId,
- String payload,
- String vnfId){
- RuntimeContext runtimeContext = new RuntimeContext();
- ResponseContext responseContext = new ResponseContext();
- runtimeContext.setResponseContext(responseContext);
- RequestContext requestContext = new RequestContext();
- runtimeContext.setRequestContext(requestContext);
- CommonHeader commonHeader = new CommonHeader();
- requestContext.setCommonHeader(commonHeader);
- responseContext.setCommonHeader(commonHeader);
- commonHeader.setFlags(new Flags(null, false, 0));
- ActionIdentifiers actionIdentifiers = new ActionIdentifiers();
- requestContext.setActionIdentifiers(actionIdentifiers);
- VNFContext vnfContext = new VNFContext();
- runtimeContext.setVnfContext(vnfContext);
- requestContext.setAction(action);
- runtimeContext.setRpcName(action.name().toLowerCase());
- commonHeader.setApiVer(API_VERSION);
- responseContext.setStatus(new Status(100, null));
- commonHeader.setRequestId(responseId);
- responseContext.setPayload(payload);
- commonHeader.setTimestamp(Instant.now());
- vnfContext.setId(vnfId);
- return new CommandResponse(runtimeContext);
- }
-
-
-
- @Test
- public void testPositiveFlow_configure() {
-
- String requestId = "1";
-
- pouplateCommandExecutorInput("FIREWALL",30,
- "1.0", Instant.now(), API_VERSION, requestId, ORIGINATOR_ID, "",
- VNFOperation.Configure, "33", "");
- }
-
- public WorkflowResponse getWorkflowResponse (){
- WorkflowResponse wfResponse = new WorkflowResponse();
- ResponseContext responseContext = createResponseContextWithSuObjects();
- wfResponse.setResponseContext(responseContext);
- responseContext.setPayload("");
- wfResponse.getResponseContext().setStatus(new Status(100, null));
- return wfResponse;
- }
-
- private RuntimeContext pouplateCommandExecutorInput(String vnfType,
- int ttl,
- String vnfVersion,
- Instant timeStamp,
- String apiVersion,
- String requestId,
- String originatorID,
- String subRequestID,
- VNFOperation action,
- String vnfId,
- String payload){
- RuntimeContext commandExecutorInput = createCommandExecutorInputWithSubObjects();
- RequestContext requestContext = commandExecutorInput.getRequestContext();
- ResponseContext responseContext = createResponseContextWithSuObjects();
- commandExecutorInput.setResponseContext(responseContext);
-
- requestContext.getCommonHeader().setFlags(new Flags(null, false, ttl));
- requestContext.getCommonHeader().setApiVer(apiVersion);
- requestContext.getCommonHeader().setTimestamp(timeStamp);
- requestContext.getCommonHeader().setRequestId(requestId);
- requestContext.getCommonHeader().setSubRequestId(subRequestID);
- requestContext.getCommonHeader().setOriginatorId(originatorID);
- requestContext.setAction(action);
- requestContext.setPayload(payload);
- requestContext.getActionIdentifiers().setVnfId(vnfId);
- VNFContext vnfContext = commandExecutorInput.getVnfContext();
- vnfContext.setType(vnfType);
- vnfContext.setId(vnfId);
- vnfContext.setVersion(vnfVersion);
- return commandExecutorInput;
- }
-
- private RuntimeContext createCommandExecutorInputWithSubObjects() {
- return createRuntimeContextWithSubObjects();
- }
-
- private RuntimeContext createRuntimeContextWithSubObjects() {
- RuntimeContext runtimeContext = new RuntimeContext();
- RequestContext requestContext = new RequestContext();
- runtimeContext.setRequestContext(requestContext);
- CommonHeader commonHeader = new CommonHeader();
- requestContext.setCommonHeader(commonHeader);
- commonHeader.setFlags(new Flags(null, false, 0));
- ActionIdentifiers actionIdentifiers = new ActionIdentifiers();
- requestContext.setActionIdentifiers(actionIdentifiers);
- VNFContext vnfContext = new VNFContext();
- runtimeContext.setVnfContext(vnfContext);
- return runtimeContext;
-
- }
-
- private ResponseContext createResponseContextWithSuObjects(){
- ResponseContext responseContext = new ResponseContext();
- CommonHeader commonHeader = new CommonHeader();
- responseContext.setCommonHeader(commonHeader);
- responseContext.setStatus(new Status(0, null));
- commonHeader.setFlags(new Flags(null, false, 0));
- return responseContext;
- }
-
-}
diff --git a/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandExecutor.java b/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandExecutor.java
index cd02c260d..fcf45d59d 100644
--- a/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandExecutor.java
+++ b/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandExecutor.java
@@ -24,30 +24,29 @@
package org.onap.appc.executor;
/**
- *
+ *
*/
-import java.time.Instant;
-
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
import org.mockito.Mockito;
-import org.onap.appc.domainmodel.lcm.ActionIdentifiers;
-import org.onap.appc.domainmodel.lcm.CommonHeader;
-import org.onap.appc.domainmodel.lcm.Flags;
-import org.onap.appc.domainmodel.lcm.RequestContext;
-import org.onap.appc.domainmodel.lcm.RuntimeContext;
-import org.onap.appc.domainmodel.lcm.VNFContext;
-import org.onap.appc.domainmodel.lcm.VNFOperation;
+import org.onap.appc.domainmodel.lcm.*;
import org.onap.appc.exceptions.APPCException;
import org.onap.appc.executionqueue.ExecutionQueueService;
import org.onap.appc.executor.impl.*;
+import org.onap.appc.executor.impl.objects.CommandRequest;
+import org.onap.appc.executor.objects.CommandExecutorInput;
import org.onap.appc.lifecyclemanager.LifecycleManager;
import org.onap.appc.requesthandler.RequestHandler;
import org.onap.appc.workflow.WorkFlowManager;
import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
import java.util.Date;
import java.util.concurrent.TimeUnit;
@@ -55,113 +54,99 @@ import java.util.concurrent.TimeUnit;
import static junit.framework.Assert.assertTrue;
import static org.powermock.api.support.membermodification.MemberMatcher.method;
-
-@SuppressWarnings("deprecation")
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({CommandTask.class,CommandExecutorImpl.class})
public class TestCommandExecutor {
- private static final String TTL_FLAG= "TTL";
- private static final String API_VERSION= "2.0.0";
- private static final String ORIGINATOR_ID= "1";
-
- private CommandExecutorImpl commandExecutor;
-
- private CommandTaskFactory executionTaskFactory;
-
- private RequestHandler requestHandler;
- private WorkFlowManager workflowManager;
- private LifecycleManager lifecyclemanager;
-
- private ExecutionQueueService executionQueueService;
- private Instant timeStamp = Instant.now();
- private String requestId = "1";
- private RuntimeContext commandExecutorInputConfigure = pouplateCommandExecutorInput("FIREWALL", 30000, "1.0",
- timeStamp, API_VERSION, requestId, ORIGINATOR_ID, "2", VNFOperation.Configure,"15","") ;
- private RuntimeContext commandExecutorInputSync = pouplateCommandExecutorInput("FIREWALL", 30, "1.0",
- timeStamp, API_VERSION, requestId, ORIGINATOR_ID, "2", VNFOperation.Sync,"15","") ;
-
- @Before
- public void init()throws Exception {
- requestHandler= Mockito.mock(RequestHandler.class);
- lifecyclemanager= Mockito.mock(LifecycleManager.class);
- workflowManager= Mockito.mock(WorkFlowManager.class);
-
- executionQueueService = Mockito.mock(ExecutionQueueService.class);
-
- commandExecutor = new CommandExecutorImpl();
- executionTaskFactory = Mockito.mock(CommandTaskFactory.class);
- commandExecutor.setExecutionTaskFactory(executionTaskFactory);
- commandExecutor.setExecutionQueueService(executionQueueService);
- LCMCommandTask lcmCommandTask = Mockito.mock(LCMCommandTask.class);
- LCMReadonlyCommandTask lCMReadonlyCommandTask = Mockito.mock(LCMReadonlyCommandTask.class);
-
- Mockito.when(executionTaskFactory.getExecutionTask(commandExecutorInputConfigure)).thenReturn(lcmCommandTask);
- Mockito.when(executionTaskFactory.getExecutionTask(commandExecutorInputSync)).thenReturn(lCMReadonlyCommandTask);
-
-// Mockito.when(executionQueueService.putMessage((Runnable) Mockito.anyObject(),Mockito.anyLong(),(TimeUnit)Mockito.anyObject())).thenReturn(true);
-
- }
-
-
- @Test
- public void testPositiveFlow_LCM() throws Exception {
- //Map <String,Object> flags = setTTLInFlags("30");
- String requestId = "1";
- RuntimeContext commandExecutorInput = pouplateCommandExecutorInput("FIREWALL", 30, "1.0", Instant.now(), API_VERSION, requestId, ORIGINATOR_ID, "2", VNFOperation.Configure, "15", "") ;
- try {
- commandExecutor.executeCommand(commandExecutorInput);
- } catch (APPCException e) {
- Assert.fail(e.toString());
- }
-
- }
-
- @Test
- public void testPositiveFlow_GetConfig(){
- String requestId = "1";
-
- RuntimeContext commandExecutorInput = pouplateCommandExecutorInput("FIREWALL", 30, "1.0", Instant.now(), API_VERSION, requestId, ORIGINATOR_ID, "2", VNFOperation.Sync,"15","") ;
- try {
- commandExecutor.executeCommand(commandExecutorInput);
- } catch (APPCException e) {
- Assert.fail(e.toString());
- }
-
- }
-
-
- private RuntimeContext pouplateCommandExecutorInput(String vnfType, int ttl, String vnfVersion, Instant timeStamp, String apiVersion, String requestId, String originatorID, String subRequestID, VNFOperation action, String vnfId , String payload){
- RuntimeContext commandExecutorInput = createCommandExecutorInputWithSubObjects();
- RequestContext requestContext = commandExecutorInput.getRequestContext();
- requestContext.getCommonHeader().setFlags(new Flags(null, false, ttl));
- requestContext.getCommonHeader().setApiVer(apiVersion);
- requestContext.getCommonHeader().setTimestamp(timeStamp);
- requestContext.getCommonHeader().setRequestId(requestId);
- requestContext.getCommonHeader().setSubRequestId(subRequestID);
- requestContext.getCommonHeader().setOriginatorId(originatorID);
- requestContext.setAction(action);
- requestContext.setPayload(payload);
- requestContext.getActionIdentifiers().setVnfId(vnfId);
- VNFContext vnfContext = commandExecutorInput.getVnfContext();
- vnfContext.setType(vnfType);
- vnfContext.setId(vnfId);
- vnfContext.setVersion(vnfVersion);
- return commandExecutorInput;
- }
-
- private RuntimeContext createCommandExecutorInputWithSubObjects() {
- RuntimeContext runtimeContext = new RuntimeContext();
+ private static final String TTL_FLAG= "TTL";
+ private static final String API_VERSION= "2.0.0";
+ private static final String ORIGINATOR_ID= "1";
+
+ private CommandExecutorImpl commandExecutor;
+
+ private RequestHandler requestHandler;
+ private WorkFlowManager workflowManager;
+ private ExecutionQueueService executionQueueService;
+
+ private Date timeStamp = new Date();
+ private String requestId = "1";
+ private CommandExecutorInput commandExecutorInputConfigure = pouplateCommandExecutorInput("FIREWALL", 30000, "1.0",
+ timeStamp, API_VERSION, requestId, ORIGINATOR_ID, "2", VNFOperation.Configure,"15","") ;
+ private CommandExecutorInput commandExecutorInputSync = pouplateCommandExecutorInput("FIREWALL", 30, "1.0",
+ timeStamp, API_VERSION, requestId, ORIGINATOR_ID, "2", VNFOperation.Sync,"15","") ;
+
+ @Before
+ public void init()throws Exception {
+ requestHandler= Mockito.mock(RequestHandler.class);
+ workflowManager= Mockito.mock(WorkFlowManager.class);
+
+ executionQueueService = Mockito.mock(ExecutionQueueService.class);
+
+ commandExecutor = new CommandExecutorImpl();
+ commandExecutor.setExecutionQueueService(executionQueueService);
+ commandExecutor.setRequestHandler(requestHandler);
+ commandExecutor.setWorkflowManager(workflowManager);
+ commandExecutor.initialize();
+ CommandTask commandTask = Mockito.mock(CommandTask.class);
+ Mockito.when(commandTask.getCommandRequest()).thenReturn(new CommandRequest(commandExecutorInputConfigure));
+ PowerMockito.whenNew(CommandTask.class).withParameterTypes(RequestHandler.class,WorkFlowManager.class).withArguments(requestHandler,workflowManager).thenReturn(commandTask);
+ }
+
+
+ @Test
+ public void testPositiveFlow_LCM() throws Exception {
+ //Map <String,Object> flags = setTTLInFlags("30");
+ try {
+ commandExecutor.executeCommand(commandExecutorInputConfigure);
+ } catch (APPCException e) {
+ Assert.fail(e.toString());
+ }
+
+ }
+
+ @Test(expected = APPCException.class)
+ public void testNegativeFlow_LCM() throws APPCException{
+ Mockito.doThrow(new APPCException("Failed to enqueue request")).when(executionQueueService).putMessage((Runnable) Mockito.anyObject(),Mockito.anyLong(),(TimeUnit) Mockito.anyObject());
+ commandExecutor.executeCommand(commandExecutorInputSync);
+ }
+
+
+ private CommandExecutorInput pouplateCommandExecutorInput(String vnfType, int ttl, String vnfVersion, Date timeStamp, String apiVersion, String requestId, String originatorID, String subRequestID, VNFOperation action, String vnfId , String payload){
+ CommandExecutorInput commandExecutorInput = createCommandExecutorInputWithSubObjects();
+ RuntimeContext runtimeContext = commandExecutorInput.getRuntimeContext();
+ RequestContext requestContext = runtimeContext.getRequestContext();
+ requestContext.getCommonHeader().getFlags().setTtl(ttl);
+ requestContext.getCommonHeader().setApiVer(apiVersion);
+ requestContext.getCommonHeader().setTimestamp(timeStamp);
+ requestContext.getCommonHeader().setRequestId(requestId);
+ requestContext.getCommonHeader().setSubRequestId(subRequestID);
+ requestContext.getCommonHeader().setOriginatorId(originatorID);
+ requestContext.setAction(action);
+ requestContext.setPayload(payload);
+ requestContext.getActionIdentifiers().setVnfId(vnfId);
+ VNFContext vnfContext = runtimeContext.getVnfContext();
+ vnfContext.setType(vnfType);
+ vnfContext.setId(vnfId);
+ vnfContext.setVersion(vnfVersion);
+ return commandExecutorInput;
+ }
+
+ private CommandExecutorInput createCommandExecutorInputWithSubObjects() {
+ CommandExecutorInput commandExecutorInput = new CommandExecutorInput();
+ RuntimeContext runtimeContext = new RuntimeContext();
+ commandExecutorInput.setRuntimeContext(runtimeContext);
RequestContext requestContext = new RequestContext();
- runtimeContext.setRequestContext(requestContext);
- CommonHeader commonHeader = new CommonHeader();
- requestContext.setCommonHeader(commonHeader);
- commonHeader.setFlags(new Flags(null, false, 0));
- ActionIdentifiers actionIdentifiers = new ActionIdentifiers();
- requestContext.setActionIdentifiers(actionIdentifiers);
- VNFContext vnfContext = new VNFContext();
- runtimeContext.setVnfContext(vnfContext);
- return runtimeContext;
- }
-
-
+ runtimeContext.setRequestContext(requestContext);
+ CommonHeader commonHeader = new CommonHeader();
+ requestContext.setCommonHeader(commonHeader);
+ Flags flags = new Flags();
+ commonHeader.setFlags(flags);
+ ActionIdentifiers actionIdentifiers = new ActionIdentifiers();
+ requestContext.setActionIdentifiers(actionIdentifiers);
+ VNFContext vnfContext = new VNFContext();
+ runtimeContext.setVnfContext(vnfContext);
+ return commandExecutorInput;
+ }
}
+
diff --git a/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandTask.java b/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandTask.java
new file mode 100644
index 000000000..d21e788f3
--- /dev/null
+++ b/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/onap/appc/executor/TestCommandTask.java
@@ -0,0 +1,231 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.appc.executor;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.onap.appc.domainmodel.lcm.*;
+import org.onap.appc.executor.impl.CommandExecutorImpl;
+import org.onap.appc.executor.impl.CommandTask;
+import org.onap.appc.executor.impl.objects.CommandRequest;
+import org.onap.appc.executor.objects.CommandExecutorInput;
+import org.onap.appc.requesthandler.RequestHandler;
+import org.onap.appc.workflow.WorkFlowManager;
+import org.onap.appc.workflow.objects.WorkflowRequest;
+import org.onap.appc.workflow.objects.WorkflowResponse;
+import org.onap.ccsdk.sli.adaptors.aai.AAIService;
+import org.osgi.framework.*;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyObject;
+
+/**
+ * @author sushilma
+ * @since September 04, 2017
+ */
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({FrameworkUtil.class,AAIService.class,BundleContext.class,ServiceReference.class,
+ BundleReference.class,Bundle.class,Filter.class,BundleListener.class,InvalidSyntaxException.class,
+ BundleException.class,FrameworkListener.class,ServiceRegistration.class,ServiceListener.class,
+ Version.class})
+public class TestCommandTask {
+ CommandTask task ;
+ private RequestHandler requestHandler;
+ private WorkFlowManager workflowManager;
+ private CommandRequest commandRequest;
+ private AAIService aaiService;
+
+ private BundleContext bundleContext = Mockito.mock(BundleContext.class);
+ private Bundle bundleService = Mockito.mock(Bundle.class);
+ private ServiceReference sref = Mockito.mock(ServiceReference.class);
+
+ private static final String TTL_FLAG= "TTL";
+ private static final String API_VERSION= "2.0.0";
+ private static final String ORIGINATOR_ID= "1";
+ @Before
+ public void init(){
+ aaiService = Mockito.mock(AAIService.class);
+/* PowerMockito.mockStatic(FrameworkUtil.class);
+ Mockito.when(bundleContext.getServiceReference(AAIService.class.getName())).thenReturn(sref);
+ Mockito.when(bundleContext.getService(any())).thenReturn(aaiService);
+ Mockito.when(FrameworkUtil.getBundle(AAIService.class).getBundleContext()).thenReturn(bundleContext);*/
+
+ PowerMockito.mockStatic(FrameworkUtil.class);
+ PowerMockito.when(FrameworkUtil.getBundle(AAIService.class)).thenReturn(bundleService);
+ PowerMockito.when(bundleService.getBundleContext()).thenReturn(bundleContext);
+ PowerMockito.when(bundleContext.getServiceReference(AAIService.class.getName())).thenReturn(sref);
+ PowerMockito.when(bundleContext.getService(sref)).thenReturn(aaiService);
+
+
+ requestHandler = Mockito.mock(RequestHandler.class);
+ workflowManager = Mockito.mock(WorkFlowManager.class);
+ task = new CommandTask(requestHandler ,workflowManager );
+ }
+
+ @Test
+ public void testRunPositive(){
+ Mockito.when(workflowManager.executeWorkflow(anyObject())).thenReturn(getWorkflowResponse());
+ task.setWorkflowManager(workflowManager);
+ task.setRequestHandler(requestHandler);
+ task.setCommandRequest(getCommandRequest("FIREWALL",30,new Date(), "11" ,setTTLInFlags("30"),VNFOperation.Sync, "1", "1.0"));
+ task.run();
+ Assert.assertNotNull(task.getCommandRequest().getCommandExecutorInput().getRuntimeContext().getResponseContext());
+ }
+
+ @Test
+ public void testRunPositiveTerminateFailed(){
+ Mockito.when(workflowManager.executeWorkflow(anyObject())).thenReturn(getWorkflowResponse());
+ task.setWorkflowManager(workflowManager);
+ task.setRequestHandler(requestHandler);
+ task.setCommandRequest(getCommandRequest("FIREWALL",30,new Date(), "12" ,setTTLInFlags("30"),VNFOperation.Terminate, "2", "1.0"));
+ setResponseContext(300,task.getCommandRequest().getCommandExecutorInput().getRuntimeContext());
+ task.run();
+ Assert.assertNotNull(task.getCommandRequest().getCommandExecutorInput().getRuntimeContext().getResponseContext());
+ }
+
+
+ @Ignore
+ public void testRunPositiveTerminateSuccess(){
+ Mockito.when(workflowManager.executeWorkflow(anyObject())).thenReturn(getWorkflowResponse());
+ task.setWorkflowManager(workflowManager);
+ task.setRequestHandler(requestHandler);
+ task.setCommandRequest(getCommandRequest("FIREWALL",30,new Date(), "12" ,setTTLInFlags("30"),VNFOperation.Terminate, "2", "1.0"));
+ setResponseContext(100,task.getCommandRequest().getCommandExecutorInput().getRuntimeContext());
+ task.run();
+ Assert.assertNotNull(task.getCommandRequest().getCommandExecutorInput().getRuntimeContext().getResponseContext());
+ }
+
+ private WorkflowResponse getWorkflowResponse (){
+ WorkflowResponse wfResponse = new WorkflowResponse();
+ ResponseContext responseContext = createResponseContextWithObjects();
+ wfResponse.setResponseContext(responseContext);
+ responseContext.setPayload("");
+ wfResponse.getResponseContext().getStatus().setCode(100);
+ return wfResponse;
+ }
+
+ private ResponseContext createResponseContextWithObjects(){
+ ResponseContext responseContext = new ResponseContext();
+ CommonHeader commonHeader = new CommonHeader();
+ Flags flags = new Flags();
+ Status status = new Status();
+ responseContext.setCommonHeader(commonHeader);
+ responseContext.setStatus(status);
+ commonHeader.setFlags(flags);
+ return responseContext;
+ }
+
+ private void setResponseContext(int statusCode ,RuntimeContext runtimeContext ){
+ ResponseContext responseContext = createResponseContextWithObjects();
+ responseContext.getStatus().setCode(statusCode);
+ runtimeContext.setResponseContext(responseContext);
+ }
+
+ private CommandRequest getCommandRequest(String vnfType , Integer ttl , Date timeStamp, String requestId,
+ Map<String,Object> flags, VNFOperation command , String vnfId, String vnfVersion ){
+
+ CommandExecutorInput commandExecutorInput = pouplateCommandExecutorInput(vnfType, ttl, vnfVersion, timeStamp, API_VERSION, requestId, ORIGINATOR_ID, "", command, vnfId, "");
+ CommandRequest request = new CommandRequest(commandExecutorInput);
+ request.setCommandExecutorInput(commandExecutorInput);
+ request.setCommandInTimeStamp(new Date());
+ return request;
+ }
+
+ private CommandExecutorInput pouplateCommandExecutorInput(String vnfType, int ttl, String vnfVersion, Date timeStamp, String apiVersion, String requestId, String originatorID, String subRequestID, VNFOperation action, String vnfId , String payload){
+ CommandExecutorInput commandExecutorInput = createCommandExecutorInputWithSubObjects();
+ RuntimeContext runtimeContext = commandExecutorInput.getRuntimeContext();
+ RequestContext requestContext = runtimeContext.getRequestContext();
+ ResponseContext responseContext = createResponseContextWithSuObjects();
+ runtimeContext.setResponseContext(responseContext);
+
+ requestContext.getCommonHeader().getFlags().setTtl(ttl);
+ requestContext.getCommonHeader().setApiVer(apiVersion);
+ requestContext.getCommonHeader().setTimestamp(timeStamp);
+ requestContext.getCommonHeader().setRequestId(requestId);
+ requestContext.getCommonHeader().setSubRequestId(subRequestID);
+ requestContext.getCommonHeader().setOriginatorId(originatorID);
+ requestContext.setAction(action);
+ requestContext.setPayload(payload);
+ requestContext.getActionIdentifiers().setVnfId(vnfId);
+ requestContext.getActionIdentifiers().setServiceInstanceId("test");
+ VNFContext vnfContext = runtimeContext.getVnfContext();
+ vnfContext.setType(vnfType);
+ vnfContext.setId(vnfId);
+ vnfContext.setVersion(vnfVersion);
+ return commandExecutorInput;
+ }
+
+ private CommandExecutorInput createCommandExecutorInputWithSubObjects() {
+ CommandExecutorInput commandExecutorInput = new CommandExecutorInput();
+ RuntimeContext runtimeContext = createRuntimeContextWithSubObjects();
+ commandExecutorInput.setRuntimeContext(runtimeContext);
+ return commandExecutorInput;
+ }
+
+ private ResponseContext createResponseContextWithSuObjects(){
+ ResponseContext responseContext = new ResponseContext();
+ CommonHeader commonHeader = new CommonHeader();
+ Flags flags = new Flags();
+ Status status = new Status();
+ responseContext.setCommonHeader(commonHeader);
+ responseContext.setStatus(status);
+ commonHeader.setFlags(flags);
+ return responseContext;
+ }
+
+ private RuntimeContext createRuntimeContextWithSubObjects() {
+ RuntimeContext runtimeContext = new RuntimeContext();
+ RequestContext requestContext = new RequestContext();
+ runtimeContext.setRequestContext(requestContext);
+ CommonHeader commonHeader = new CommonHeader();
+ requestContext.setCommonHeader(commonHeader);
+ Flags flags = new Flags();
+ commonHeader.setFlags(flags);
+ ActionIdentifiers actionIdentifiers = new ActionIdentifiers();
+ requestContext.setActionIdentifiers(actionIdentifiers);
+ VNFContext vnfContext = new VNFContext();
+ runtimeContext.setVnfContext(vnfContext);
+ return runtimeContext;
+ }
+
+ private Map<String,Object> setTTLInFlags( String value){
+ Map<String,Object> flags = new HashMap<String,Object>();
+ if( value != null || !("".equalsIgnoreCase(value))){
+ flags.put(TTL_FLAG, value);
+ }
+ return flags;
+ }
+}