Remove dmaap from models
[policy/models.git] / models-interactions / model-actors / actor.test / src / main / java / org / onap / policy / controlloop / actor / test / BasicOperation.java
index 989f6a7..b037189 100644 (file)
@@ -2,7 +2,8 @@
  * ============LICENSE_START=======================================================
  * ONAP
  * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2024 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 package org.onap.policy.controlloop.actor.test;
 
 import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.when;
 
+import jakarta.ws.rs.core.Response;
 import java.util.Map;
-import java.util.TreeMap;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
-import javax.ws.rs.core.Response;
+import java.util.concurrent.Executor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.onap.policy.aai.AaiConstants;
-import org.onap.policy.aai.AaiCqResponse;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.resources.ResourceUtils;
 import org.onap.policy.common.utils.time.PseudoExecutor;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.ActorService;
-import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
-import org.onap.policy.controlloop.actorserviceprovider.Operator;
-import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
-import org.onap.policy.controlloop.actorserviceprovider.impl.OperationPartial;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
-import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
-import org.onap.policy.controlloop.policy.PolicyResult;
 
 /**
  * Superclass for various Operation tests.
  */
 public class BasicOperation {
-    protected static final Coder coder = new StandardCoder();
     protected static final UUID REQ_ID = UUID.randomUUID();
-    protected static final String DEFAULT_ACTOR = "default-actor";
-    protected static final String DEFAULT_OPERATION = "default-operation";
+    protected static final String SUB_REQ_ID = "my-sub-request-id";
+    protected static final String DEFAULT_ACTOR = "default-Actor";
+    protected static final String DEFAULT_OPERATION = "default-Operation";
     protected static final String TARGET_ENTITY = "my-target";
 
+    protected static final Executor blockingExecutor = command -> {
+        var thread = new Thread(command);
+        thread.setDaemon(true);
+        thread.start();
+    };
+
     protected final String actorName;
     protected final String operationName;
+    protected Coder coder = new StandardCoder();
 
     @Mock
     protected ActorService service;
-    @Mock
-    protected Actor guardActor;
-    @Mock
-    protected Operator guardOperator;
-    @Mock
-    protected Operation guardOperation;
-    @Mock
-    protected Actor cqActor;
-    @Mock
-    protected Operator cqOperator;
-    @Mock
-    protected Operation cqOperation;
-    @Mock
-    protected AaiCqResponse cqResponse;
 
-    protected CompletableFuture<OperationOutcome> cqFuture;
     protected CompletableFuture<Response> future;
     protected ControlLoopOperationParams params;
-    protected Map<String, String> enrichment;
-    protected VirtualControlLoopEvent event;
-    protected ControlLoopEventContext context;
     protected OperationOutcome outcome;
     protected PseudoExecutor executor;
 
+    protected AutoCloseable closeable;
+
     /**
      * Constructs the object using a default actor and operation name.
      */
@@ -111,62 +92,29 @@ public class BasicOperation {
      * Initializes mocks and sets up.
      */
     public void setUpBasic() {
-        MockitoAnnotations.initMocks(this);
+        closeable = MockitoAnnotations.openMocks(this);
 
-        cqFuture = new CompletableFuture<>();
         future = new CompletableFuture<>();
 
         executor = new PseudoExecutor();
 
         makeContext();
 
-        when(service.getActor(OperationPartial.GUARD_ACTOR_NAME)).thenReturn(guardActor);
-        when(guardActor.getOperator(OperationPartial.GUARD_OPERATION_NAME)).thenReturn(guardOperator);
-        when(guardOperator.buildOperation(any())).thenReturn(guardOperation);
-
-        outcome = params.makeOutcome();
-        outcome.setResult(PolicyResult.SUCCESS);
-        when(guardOperation.start()).thenReturn(CompletableFuture.completedFuture(outcome));
-
-        when(service.getActor(AaiConstants.ACTOR_NAME)).thenReturn(cqActor);
-        when(cqActor.getOperator("CustomQuery")).thenReturn(cqOperator);
-        when(cqOperator.buildOperation(any())).thenReturn(cqOperation);
-
-        when(cqOperation.start()).thenReturn(cqFuture);
-
         // get a fresh outcome
         outcome = params.makeOutcome();
     }
 
     /**
-     * Reinitializes {@link #enrichment}, {@link #event}, {@link #context}, and
-     * {@link #params}.
+     * Reinitializes {@link #params}.
      * <p/>
      * Note: {@link #params} is configured to use {@link #executor}.
      */
     protected void makeContext() {
-        enrichment = new TreeMap<>(makeEnrichment());
-
-        event = new VirtualControlLoopEvent();
-        event.setRequestId(REQ_ID);
-        event.setAai(enrichment);
-
-        context = new ControlLoopEventContext(event);
-
-        params = ControlLoopOperationParams.builder().executor(executor).context(context).actorService(service)
-                        .actor(actorName).operation(operationName).targetEntity(TARGET_ENTITY).payload(makePayload())
+        params = ControlLoopOperationParams.builder().executor(executor).requestId(REQ_ID).actorService(service)
+                        .actor(actorName).operation(operationName).payload(makePayload())
                         .build();
     }
 
-    /**
-     * Makes enrichment data.
-     *
-     * @return enrichment data
-     */
-    protected Map<String, String> makeEnrichment() {
-        return new TreeMap<>();
-    }
-
 
     /**
      * Makes payload data.
@@ -188,7 +136,7 @@ public class BasicOperation {
      */
     protected <R> void verifyRequest(String expectedJsonFile, R request, String... ignore) throws CoderException {
         String json = coder.encode(request, true);
-        String expected = ResourceUtils.getResourceAsString(expectedJsonFile);
+        var expected = ResourceUtils.getResourceAsString(expectedJsonFile);
 
         // strip various items, because they change for each request
         for (String stripper : ignore) {
@@ -202,16 +150,4 @@ public class BasicOperation {
 
         assertEquals(expected, json);
     }
-
-    /**
-     * Provides a response to a custom query.
-     *
-     * @param cq response to provide
-     */
-    protected void provideCqResponse(AaiCqResponse cq) {
-        context.setProperty(AaiCqResponse.CONTEXT_KEY, cq);
-        OperationOutcome outcome2 = params.makeOutcome();
-        outcome2.setResult(PolicyResult.SUCCESS);
-        cqFuture.complete(outcome2);
-    }
 }