9a4677d79c9b9fe8e04f25dd3d91a391128aa3dd
[policy/models.git] / models-interactions / model-actors / actor.vfc / src / test / java / org / onap / policy / controlloop / actor / vfc / RestartTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP
4  * ================================================================================
5  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.controlloop.actor.vfc;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.assertTrue;
27
28 import java.util.List;
29 import java.util.concurrent.CompletableFuture;
30 import org.apache.commons.lang3.tuple.Pair;
31 import org.junit.AfterClass;
32 import org.junit.Before;
33 import org.junit.BeforeClass;
34 import org.junit.Test;
35 import org.onap.policy.aai.AaiCqResponse;
36 import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
37 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
38 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
39 import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
40 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingConfig;
41 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingParams;
42 import org.onap.policy.vfc.VfcRequest;
43 import org.onap.policy.vfc.VfcResponse;
44
45 public class RestartTest extends BasicVfcOperation {
46     private static final String TEST_SERVICE_INSTANCE_ID = "test-service-instance-id";
47     private static final String TEST_VSERVER_ID = "test-vserver-id";
48     private static final String TEST_VSERVER_NAME = "test-vserver-name";
49     private static final String TEST_GENERIC_VNF_ID = "test-generic-vnf-id";
50
51     private Restart restartOper;
52
53
54     @BeforeClass
55     public static void setUpBeforeClass() throws Exception {
56         initBeforeClass();
57     }
58
59     @AfterClass
60     public static void tearDownAfterClass() {
61         destroyAfterClass();
62     }
63
64     /**
65      * setup restart operation.
66      */
67     @Before
68     public void setup() throws Exception {
69         super.setUp();
70         params.getContext().getEnrichment().put("service-instance.service-instance-id", TEST_SERVICE_INSTANCE_ID);
71         params.getContext().getEnrichment().put("vserver.vserver-id", TEST_VSERVER_ID);
72         params.getContext().getEnrichment().put("vserver.vserver-name", TEST_VSERVER_NAME);
73         restartOper = new Restart(params, config);
74     }
75
76     /**
77      * Tests "success" case with simulator.
78      */
79     @Test
80     public void testSuccess() throws Exception {
81         HttpPollingParams opParams = HttpPollingParams.builder().clientName(MY_CLIENT).path("ns").pollPath("jobs")
82                         .maxPolls(1).build();
83         config = new HttpPollingConfig(blockingExecutor, opParams, HttpClientFactoryInstance.getClientFactory());
84
85         params = params.toBuilder().retry(0).timeoutSec(5).executor(blockingExecutor).build();
86
87         restartOper = new Restart(params, config);
88
89         outcome = restartOper.start().get();
90         assertEquals(OperationResult.SUCCESS, outcome.getResult());
91         assertTrue(outcome.getResponse() instanceof VfcResponse);
92     }
93
94     /**
95      * Tests "success" case with simulator, using properties instead of custom query data.
96      */
97     @Test
98     public void testSuccessViaProperties() throws Exception {
99         HttpPollingParams opParams = HttpPollingParams.builder().clientName(MY_CLIENT).path("ns").pollPath("jobs")
100                         .maxPolls(1).build();
101         config = new HttpPollingConfig(blockingExecutor, opParams, HttpClientFactoryInstance.getClientFactory());
102
103         params = params.toBuilder().retry(0).timeoutSec(5).executor(blockingExecutor).preprocessed(true).build();
104         params.getContext().removeProperty(AaiCqResponse.CONTEXT_KEY);
105
106         restartOper = new Restart(params, config);
107
108         // set the properties
109         restartOper.setProperty(OperationProperties.ENRICHMENT_SERVICE_ID, TEST_SERVICE_INSTANCE_ID);
110         restartOper.setProperty(OperationProperties.ENRICHMENT_VSERVER_ID, TEST_VSERVER_ID);
111         restartOper.setProperty(OperationProperties.ENRICHMENT_VSERVER_NAME, TEST_VSERVER_NAME);
112         restartOper.setProperty(OperationProperties.ENRICHMENT_GENERIC_VNF_ID, TEST_GENERIC_VNF_ID);
113
114         // run the operation
115         outcome = restartOper.start().get();
116         assertEquals(OperationResult.SUCCESS, outcome.getResult());
117         assertTrue(outcome.getResponse() instanceof VfcResponse);
118     }
119
120     @Test
121     public void testConstructor() {
122         CompletableFuture<OperationOutcome> futureRes = restartOper.startOperationAsync(1, outcome);
123         assertNotNull(futureRes);
124         assertEquals(0, restartOper.getPollCount());
125     }
126
127     @Test
128     public void testGetPropertyNames() {
129         // @formatter:off
130         assertThat(restartOper.getPropertyNames()).isEqualTo(
131                         List.of(
132                             OperationProperties.ENRICHMENT_SERVICE_ID,
133                             OperationProperties.ENRICHMENT_VSERVER_ID,
134                             OperationProperties.ENRICHMENT_VSERVER_NAME,
135                             OperationProperties.ENRICHMENT_GENERIC_VNF_ID));
136         // @formatter:on
137     }
138
139     @Test
140     public void testMakeRequest() {
141         Pair<String, VfcRequest> resultPair = restartOper.makeRequest();
142         assertNotNull(resultPair.getLeft());
143         assertNotNull(resultPair.getRight());
144     }
145 }