* ONAP
* ================================================================================
* Copyright (C) 2020-2021 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.
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Map;
import java.util.TreeMap;
-import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
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.OperationOutcome;
import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
-import org.onap.policy.controlloop.actorserviceprovider.Util;
import org.onap.policy.models.decisions.concepts.DecisionRequest;
import org.onap.policy.models.decisions.concepts.DecisionResponse;
import org.onap.policy.simulators.XacmlSimulatorJaxRs;
+@RunWith(MockitoJUnitRunner.class)
public class GuardOperationTest extends BasicHttpOperation {
@Mock
*/
@Test
public void testSuccess() throws Exception {
- DecisionParams opParams = DecisionParams.builder().clientName(MY_CLIENT).path("decision").build();
+ DecisionParams opParams =
+ DecisionParams.builder().clientName(MY_CLIENT).path("decision").action("guard").build();
config = new DecisionConfig(blockingExecutor, opParams, HttpClientFactoryInstance.getClientFactory());
params = params.toBuilder().retry(0).timeoutSec(5).executor(blockingExecutor).build();
*/
@Test
public void testFailure() throws Exception {
- DecisionParams opParams = DecisionParams.builder().clientName(MY_CLIENT).path("decision").build();
+ DecisionParams opParams =
+ DecisionParams.builder().clientName(MY_CLIENT).path("decision").action("guard").build();
config = new DecisionConfig(blockingExecutor, opParams, HttpClientFactoryInstance.getClientFactory());
params = params.toBuilder().retry(0).timeoutSec(5).executor(blockingExecutor)
assertThat(oper.getPropertyNames()).isEmpty();
}
- @Test
- public void testStartOperationAsync() throws Exception {
- CompletableFuture<OperationOutcome> future2 = oper.start();
- executor.runAll(100);
- assertFalse(future2.isDone());
-
- DecisionResponse resp = new DecisionResponse();
- resp.setStatus(GuardOperation.PERMIT);
- when(rawResponse.readEntity(String.class)).thenReturn(Util.translate("", resp, String.class));
-
- verify(client).post(callbackCaptor.capture(), any(), requestCaptor.capture(), any());
- callbackCaptor.getValue().completed(rawResponse);
-
- executor.runAll(100);
- assertTrue(future2.isDone());
-
- outcome = future2.get();
- assertEquals(OperationResult.SUCCESS, outcome.getResult());
- assertEquals(resp, outcome.getResponse());
-
- assertNotNull(oper.getSubRequestId());
- assertEquals(oper.getSubRequestId(), future2.get().getSubRequestId());
- }
-
- /**
- * Tests startOperationAsync() when the guard is disabled.
- */
- @Test
- public void testStartOperationAsyncDisabled() throws Exception {
- // indicate that it's disabled
- when(guardConfig.isDisabled()).thenReturn(true);
-
- CompletableFuture<OperationOutcome> future2 = oper.start();
- executor.runAll(100);
-
- verify(client, never()).post(any(), any(), any(), any());
-
- // should already be done
- assertTrue(future2.isDone());
-
- outcome = future2.get();
- assertEquals(OperationResult.SUCCESS, outcome.getResult());
- assertNull(outcome.getResponse());
-
- // ensure callbacks were invoked
- verify(started).accept(any());
- verify(completed).accept(any());
- }
-
@Test
public void testMakeRequest() throws CoderException {
oper.generateSubRequestId(2);