Upgrade and clean up dependencies
[policy/models.git] / models-interactions / model-actors / actor.so / src / test / java / org / onap / policy / controlloop / actor / so / BasicSoOperation.java
index 0894704..1e38861 100644 (file)
@@ -3,6 +3,7 @@
  * ONAP
  * ================================================================================
  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * Modifications 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.
@@ -20,7 +21,7 @@
 
 package org.onap.policy.controlloop.actor.so;
 
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.lenient;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -28,9 +29,15 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import org.mockito.Mock;
+import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
+import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
 import org.onap.policy.controlloop.actor.test.BasicHttpOperation;
+import org.onap.policy.controlloop.actorserviceprovider.TargetType;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
-import org.onap.policy.controlloop.policy.Target;
+import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
+import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
+import org.onap.policy.simulators.SoSimulatorJaxRs;
 import org.onap.policy.so.SoRequest;
 import org.onap.policy.so.SoRequestParameters;
 import org.onap.policy.so.SoRequestReferences;
@@ -40,7 +47,7 @@ import org.onap.policy.so.SoResponse;
 /**
  * Superclass for various operator tests.
  */
-public abstract class BasicSoOperation extends BasicHttpOperation<SoRequest> {
+public abstract class BasicSoOperation extends BasicHttpOperation {
     protected static final String[] IGNORE_FIELDS = {"RequestID", "subRequestID", "seconds", "nanos"};
 
     public static final String MODEL_CUSTOM_ID = "my-model-customization-id";
@@ -49,14 +56,17 @@ public abstract class BasicSoOperation extends BasicHttpOperation<SoRequest> {
     public static final String MODEL_VERSION = "my-model-version";
     public static final String MODEL_VERS_ID = "my-model-version-id";
     public static final String SUBSCRIPTION_SVC_TYPE = "my-subscription-service-type";
-    public static final String PATH_GET = "my-path-get/";
-    public static final int MAX_GETS = 3;
-    public static final int WAIT_SEC_GETS = 20;
+    public static final String MY_PATH = "my-path";
+    public static final String POLL_PATH = "my-poll-path/";
+    public static final int MAX_POLLS = 3;
+    public static final int POLL_WAIT_SEC = 20;
+    public static final Integer VF_COUNT = 10;
 
     @Mock
-    protected SoOperator soOperator;
+    protected HttpPollingConfig config;
 
-    protected Target target;
+    protected TargetType targetType;
+    protected Map<String, String> targetEntities = new HashMap<>();
     protected SoResponse response;
 
     /**
@@ -76,11 +86,31 @@ public abstract class BasicSoOperation extends BasicHttpOperation<SoRequest> {
         super(actor, operation);
     }
 
+    /**
+     * Starts the simulator.
+     */
+    protected static void initBeforeClass() throws Exception {
+        org.onap.policy.simulators.Util.buildSoSim();
+
+        BusTopicParams clientParams = BusTopicParams.builder().clientName(MY_CLIENT).basePath("").hostname("localhost")
+                        .managed(true).port(org.onap.policy.simulators.Util.SOSIM_SERVER_PORT)
+                        .build();
+        HttpClientFactoryInstance.getClientFactory().build(clientParams);
+
+        SoSimulatorJaxRs.setRequirePolling(true);
+    }
+
+    protected static void destroyAfterClass() {
+        SoSimulatorJaxRs.setRequirePolling(false);
+        HttpClientFactoryInstance.getClientFactory().destroy();
+        HttpServletServerFactoryInstance.getServerFactory().destroy();
+    }
+
     /**
      * Initializes mocks and sets up.
      */
     public void setUp() throws Exception {
-        super.setUp();
+        super.setUpBasic();
 
         response = new SoResponse();
 
@@ -95,39 +125,41 @@ public abstract class BasicSoOperation extends BasicHttpOperation<SoRequest> {
         response.setRequestReferences(ref);
         ref.setRequestId(REQ_ID.toString());
 
-        when(rawResponse.getStatus()).thenReturn(200);
-        when(rawResponse.readEntity(String.class)).thenReturn(coder.encode(response));
+        lenient().when(rawResponse.getStatus()).thenReturn(200);
+        lenient().when(rawResponse.readEntity(String.class)).thenReturn(coder.encode(response));
 
-        operator = soOperator;
-
-        initOperator();
+        initConfig();
     }
 
     @Override
-    protected void initOperator() {
-        super.initOperator();
-        when(soOperator.getMaxGets()).thenReturn(MAX_GETS);
-        when(soOperator.getPathGet()).thenReturn(PATH_GET);
-        when(soOperator.getWaitSecGet()).thenReturn(WAIT_SEC_GETS);
+    protected void initConfig() {
+        super.initConfig();
+        lenient().when(config.getClient()).thenReturn(client);
+        lenient().when(config.getPath()).thenReturn(MY_PATH);
+        lenient().when(config.getMaxPolls()).thenReturn(MAX_POLLS);
+        lenient().when(config.getPollPath()).thenReturn(POLL_PATH);
+        lenient().when(config.getPollWaitSec()).thenReturn(POLL_WAIT_SEC);
     }
 
     @Override
     protected void makeContext() {
         super.makeContext();
 
-        target = new Target();
-        target.setModelCustomizationId(MODEL_CUSTOM_ID);
-        target.setModelInvariantId(MODEL_INVAR_ID);
-        target.setModelName(MODEL_NAME);
-        target.setModelVersion(MODEL_VERSION);
-        target.setModelVersionId(MODEL_VERS_ID);
+        targetType = TargetType.VNF;
+
+        targetEntities = new HashMap<>();
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_CUSTOMIZATION_ID, MODEL_CUSTOM_ID);
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_INVARIANT_ID, MODEL_INVAR_ID);
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_NAME, MODEL_NAME);
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION, MODEL_VERSION);
+        targetEntities.put(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION_ID, MODEL_VERS_ID);
 
-        params = params.toBuilder().target(target).build();
+        params = params.toBuilder().targetType(targetType).targetEntityIds(targetEntities).build();
     }
 
     @Override
-    protected Map<String, String> makePayload() {
-        Map<String, String> payload = new HashMap<>();
+    protected Map<String, Object> makePayload() {
+        Map<String, Object> payload = new HashMap<>();
 
         // request parameters
         SoRequestParameters reqParams = new SoRequestParameters();