1 package org.onap.so.adapters.appc.orchestrator.service;
 
   3 import java.util.HashMap;
 
   5 import java.util.Optional;
 
   6 import org.junit.Before;
 
   8 import org.junit.runner.RunWith;
 
   9 import org.mockito.InjectMocks;
 
  10 import org.mockito.Mock;
 
  11 import org.mockito.Mockito;
 
  12 import org.mockito.Spy;
 
  13 import org.mockito.junit.MockitoJUnitRunner;
 
  14 import org.onap.appc.client.lcm.model.Status;
 
  15 import org.onap.so.adapters.appc.orchestrator.client.ApplicationControllerCallback;
 
  16 import org.onap.so.adapters.appc.orchestrator.client.ApplicationControllerClient;
 
  17 import org.onap.so.adapters.appc.orchestrator.client.ApplicationControllerOrchestratorException;
 
  18 import org.onap.so.adapters.appc.orchestrator.client.beans.ConfigurationParameters;
 
  19 import org.onap.so.adapters.appc.orchestrator.client.beans.Identity;
 
  20 import org.onap.so.adapters.appc.orchestrator.client.beans.Parameters;
 
  21 import org.onap.so.adapters.appc.orchestrator.client.beans.RequestParameters;
 
  22 import org.onap.so.adapters.appc.orchestrator.service.ApplicationControllerTaskImpl;
 
  23 import org.onap.so.appc.orchestrator.service.beans.ApplicationControllerTaskRequest;
 
  24 import org.onap.so.appc.orchestrator.service.beans.ApplicationControllerVnf;
 
  25 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
 
  26 import com.fasterxml.jackson.core.JsonProcessingException;
 
  27 import org.onap.appc.client.lcm.model.Action;
 
  29 @RunWith(MockitoJUnitRunner.class)
 
  30 public class ApplicationControllerTaskImplTest {
 
  33     ApplicationControllerClient applicationControllerClient;
 
  37     ApplicationControllerTaskImpl applicationControllerTaskImpl;
 
  39     ApplicationControllerTaskRequest request;
 
  41     ApplicationControllerCallback listener;
 
  43     GraphInventoryCommonObjectMapperProvider mapper = new GraphInventoryCommonObjectMapperProvider();
 
  47         request = new ApplicationControllerTaskRequest();
 
  48         request.setBookName("testBookName");
 
  49         request.setControllerType("testControllerType");
 
  50         request.setFileParameters("testFileParams");
 
  51         request.setIdentityUrl("testIdentityUrl");
 
  52         request.setNewSoftwareVersion("2.0");
 
  53         request.setExistingSoftwareVersion("1.0");
 
  54         request.setOperationsTimeout("30");
 
  55         Map<String, String> reqConfigParams = new HashMap<>();
 
  56         reqConfigParams.put("name1", "value1");
 
  57         reqConfigParams.put("name2", "value2");
 
  58         request.setConfigParams(reqConfigParams);
 
  59         ApplicationControllerVnf applicationControllerVnf = new ApplicationControllerVnf();
 
  60         applicationControllerVnf.setVnfHostIpAddress("100.100");
 
  61         applicationControllerVnf.setVnfId("testVnfId");
 
  62         applicationControllerVnf.setVnfName("testVnfName");
 
  63         request.setApplicationControllerVnf(applicationControllerVnf);
 
  64         listener = new ApplicationControllerCallback(null, null, null);
 
  69     public void testExcute_healthCheck() throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
  70         request.setAction(Action.HealthCheck);
 
  72         Parameters parameters = new Parameters();
 
  73         RequestParameters requestParams = new RequestParameters();
 
  74         requestParams.setHostIpAddress(request.getApplicationControllerVnf().getVnfHostIpAddress());
 
  75         parameters.setRequestParameters(requestParams);
 
  76         Optional<String> payload = Optional.of((mapper.getMapper().writeValueAsString(parameters)));
 
  78         Mockito.when(applicationControllerClient.vnfCommand(Action.HealthCheck, "testRequestId",
 
  79                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
  80                 listener)).thenReturn(new Status());
 
  82         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
  84         Mockito.verify(applicationControllerClient).vnfCommand(Action.HealthCheck, "testRequestId",
 
  85                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
  91     public void testExcute_resumeTraffic() throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
  92         request.setAction(Action.ResumeTraffic);
 
  94         Parameters parameters = new Parameters();
 
  95         ConfigurationParameters configParams = new ConfigurationParameters();
 
  96         configParams.setVnfName(request.getApplicationControllerVnf().getVnfName());
 
  97         parameters.setConfigurationParameters(configParams);
 
  98         Optional<String> payload = Optional.of((mapper.getMapper().writeValueAsString(parameters)));
 
 100         Mockito.when(applicationControllerClient.vnfCommand(request.getAction(), "testRequestId",
 
 101                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 102                 listener)).thenReturn(new Status());
 
 104         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
 106         Mockito.verify(applicationControllerClient).vnfCommand(request.getAction(), "testRequestId",
 
 107                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 112     public void testExcute_stop() throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
 113         request.setAction(Action.Stop);
 
 115         Identity identity = new Identity();
 
 116         identity.setIdentityUrl(request.getIdentityUrl());
 
 117         Optional<String> payload = Optional.of((mapper.getMapper().writeValueAsString(identity)));
 
 119         Mockito.when(applicationControllerClient.vnfCommand(request.getAction(), "testRequestId",
 
 120                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 121                 listener)).thenReturn(new Status());
 
 123         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
 125         Mockito.verify(applicationControllerClient).vnfCommand(request.getAction(), "testRequestId",
 
 126                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 131     public void testExcute_lock() throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
 132         request.setAction(Action.Lock);
 
 134         Mockito.when(applicationControllerClient.vnfCommand(request.getAction(), "testRequestId",
 
 135                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), Optional.empty(),
 
 136                 "testControllerType", listener)).thenReturn(new Status());
 
 138         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
 140         Mockito.verify(applicationControllerClient).vnfCommand(request.getAction(), "testRequestId",
 
 141                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), Optional.empty(),
 
 142                 "testControllerType", listener);
 
 146     public void testExcute_quiesceTraffic() throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
 147         request.setAction(Action.QuiesceTraffic);
 
 150         Parameters parameters = new Parameters();
 
 151         parameters.setOperationsTimeout(request.getOperationsTimeout());
 
 152         Optional<String> payload = Optional.of((mapper.getMapper().writeValueAsString(parameters)));
 
 153         System.out.println("PAYLOAD is: " + payload.get());
 
 155         Mockito.when(applicationControllerClient.vnfCommand(request.getAction(), "testRequestId",
 
 156                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 157                 listener)).thenReturn(new Status());
 
 159         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
 161         Mockito.verify(applicationControllerClient).vnfCommand(request.getAction(), "testRequestId",
 
 162                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 167     public void testExcute_distributeTraffic()
 
 168             throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
 169         request.setAction(Action.DistributeTraffic);
 
 171         Parameters parameters = new Parameters();
 
 172         ConfigurationParameters configParams = new ConfigurationParameters();
 
 173         configParams.setBookName(request.getBookName());
 
 174         configParams.setNodeList(request.getNodeList());
 
 175         configParams.setFileParameterContent(request.getFileParameters());
 
 176         configParams.setVnfName(request.getApplicationControllerVnf().getVnfName());
 
 177         parameters.setConfigurationParameters(configParams);
 
 178         Optional<String> payload = Optional.of((mapper.getMapper().writeValueAsString(parameters)));
 
 180         Mockito.when(applicationControllerClient.vnfCommand(request.getAction(), "testRequestId",
 
 181                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 182                 listener)).thenReturn(new Status());
 
 184         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
 186         Mockito.verify(applicationControllerClient).vnfCommand(request.getAction(), "testRequestId",
 
 187                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 192     public void testExcute_distributeTrafficCheck()
 
 193             throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
 194         request.setAction(Action.DistributeTrafficCheck);
 
 196         Parameters parameters = new Parameters();
 
 197         ConfigurationParameters configParams = new ConfigurationParameters();
 
 198         configParams.setBookName(request.getBookName());
 
 199         configParams.setNodeList(request.getNodeList());
 
 200         configParams.setFileParameterContent(request.getFileParameters());
 
 201         configParams.setVnfName(request.getApplicationControllerVnf().getVnfName());
 
 202         parameters.setConfigurationParameters(configParams);
 
 203         Optional<String> payload = Optional.of((mapper.getMapper().writeValueAsString(parameters)));
 
 205         Mockito.when(applicationControllerClient.vnfCommand(request.getAction(), "testRequestId",
 
 206                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 207                 listener)).thenReturn(new Status());
 
 209         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
 211         Mockito.verify(applicationControllerClient).vnfCommand(request.getAction(), "testRequestId",
 
 212                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 217     public void testExcute_upgradeBackup() throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
 218         request.setAction(Action.UpgradeBackup);
 
 220         Parameters parameters = new Parameters();
 
 221         parameters.setExistingSoftwareVersion(request.getExistingSoftwareVersion());
 
 222         parameters.setNewSoftwareVersion(request.getNewSoftwareVersion());
 
 223         Optional<String> payload = Optional.of((mapper.getMapper().writeValueAsString(parameters)));
 
 225         Mockito.when(applicationControllerClient.vnfCommand(request.getAction(), "testRequestId",
 
 226                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 227                 listener)).thenReturn(new Status());
 
 229         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
 231         Mockito.verify(applicationControllerClient).vnfCommand(request.getAction(), "testRequestId",
 
 232                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 237     public void testExcute_configModify() throws JsonProcessingException, ApplicationControllerOrchestratorException {
 
 238         request.setAction(Action.ConfigModify);
 
 240         Parameters parameters = new Parameters();
 
 241         RequestParameters requestParams = new RequestParameters();
 
 242         requestParams.setHostIpAddress(request.getApplicationControllerVnf().getVnfHostIpAddress());
 
 243         parameters.setRequestParameters(requestParams);
 
 244         ConfigurationParameters configParams = new ConfigurationParameters();
 
 245         Map<String, String> configParamMap = new HashMap<>();
 
 246         configParamMap.put("name1", "value1");
 
 247         configParamMap.put("name2", "value2");
 
 248         configParams.setAdditionalProperties(configParamMap);
 
 249         parameters.setConfigurationParameters(configParams);
 
 250         Optional<String> payload = Optional.of((mapper.getMapper().writeValueAsString(parameters)));
 
 252         Mockito.when(applicationControllerClient.vnfCommand(request.getAction(), "testRequestId",
 
 253                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 254                 listener)).thenReturn(new Status());
 
 256         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);
 
 258         Mockito.verify(applicationControllerClient).vnfCommand(request.getAction(), "testRequestId",
 
 259                 request.getApplicationControllerVnf().getVnfId(), Optional.empty(), payload, "testControllerType",
 
 264     public void testListener() throws Exception {
 
 265         request.setAction(Action.QuiesceTraffic);
 
 266         Status status = applicationControllerTaskImpl.execute("testRequestId", request, listener);