diff options
Diffstat (limited to 'controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/AaiGetTenantStep2Test.java')
-rw-r--r-- | controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/AaiGetTenantStep2Test.java | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/AaiGetTenantStep2Test.java b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/AaiGetTenantStep2Test.java new file mode 100644 index 000000000..65c27b45f --- /dev/null +++ b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/AaiGetTenantStep2Test.java @@ -0,0 +1,161 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.apps.controller.usecases.step; + +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.assertSame; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +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.UUID; +import java.util.concurrent.CompletableFuture; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.onap.policy.common.utils.coder.StandardCoderObject; +import org.onap.policy.controlloop.VirtualControlLoopEvent; +import org.onap.policy.controlloop.actor.aai.AaiActor; +import org.onap.policy.controlloop.actor.aai.AaiGetTenantOperation; +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.OperationProperties; +import org.onap.policy.controlloop.actorserviceprovider.Operator; +import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams; +import org.onap.policy.controlloop.actorserviceprovider.spi.Actor; +import org.onap.policy.controlloop.eventmanager.StepContext; + +public class AaiGetTenantStep2Test { + private static final String MY_VSERVER = "my-vserver"; + private static final UUID REQ_ID = UUID.randomUUID(); + + @Mock + private Operator policyOperator; + @Mock + private Operation policyOperation; + @Mock + private Actor policyActor; + @Mock + private ActorService actors; + @Mock + private ControlLoopOperationParams params; + @Mock + private StepContext stepContext; + @Mock + private VirtualControlLoopEvent event; + + private CompletableFuture<OperationOutcome> future; + private Step2 master; + private AaiGetTenantStep2 step; + + /** + * Sets up. + */ + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + + future = new CompletableFuture<>(); + + when(params.toBuilder()).thenReturn(ControlLoopOperationParams.builder().actorService(actors) + .targetEntity("my-target").requestId(REQ_ID)); + + // configure policy operation + when(actors.getActor(AaiActor.NAME)).thenReturn(policyActor); + when(policyActor.getOperator(AaiGetTenantOperation.NAME)).thenReturn(policyOperator); + when(policyOperator.buildOperation(any())).thenReturn(policyOperation); + when(policyOperation.start()).thenReturn(future); + + when(event.getAai()).thenReturn(Map.of(Step2.VSERVER_VSERVER_NAME, MY_VSERVER)); + + master = new Step2(stepContext, params, event); + step = new AaiGetTenantStep2(master); + } + + @Test + public void testConstructor() { + assertEquals(AaiActor.NAME, step.getActorName()); + assertEquals(AaiGetTenantOperation.NAME, step.getOperationName()); + assertSame(stepContext, step.stepContext); + assertSame(event, step.event); + + // empty vserver name + when(event.getAai()).thenReturn(Map.of(Step2.VSERVER_VSERVER_NAME, "")); + assertThatIllegalArgumentException().isThrownBy(() -> new AaiGetTenantStep2(master)) + .withMessage("missing " + Step2.VSERVER_VSERVER_NAME + " in enrichment data"); + + // missing vserver name + when(event.getAai()).thenReturn(Map.of()); + assertThatIllegalArgumentException().isThrownBy(() -> new AaiGetTenantStep2(master)) + .withMessage("missing " + Step2.VSERVER_VSERVER_NAME + " in enrichment data"); + } + + @Test + public void testGetPropertyNames() { + assertThat(step.getPropertyNames()).isEmpty(); + } + + @Test + public void testSetProperties() { + step.init(); + + step.setProperties(); + + verify(policyOperation).setProperty(OperationProperties.AAI_TARGET_ENTITY, MY_VSERVER); + } + + @Test + public void testStart() { + step.init(); + assertTrue(step.start(100)); + verify(policyOperation).start(); + } + + /** + * Tests start() when the data has already been retrieved. + */ + @Test + public void testStartAlreadyHaveData() { + when(stepContext.contains(AaiGetTenantOperation.getKey(MY_VSERVER))).thenReturn(true); + + step.init(); + assertFalse(step.start(200)); + verify(policyOperation, never()).start(); + } + + @Test + public void testSuccess() { + StandardCoderObject data = new StandardCoderObject(); + OperationOutcome outcome = new OperationOutcome(); + outcome.setResponse(data); + + step.success(outcome); + verify(stepContext).setProperty(AaiGetTenantOperation.getKey(MY_VSERVER), data); + } +} |