040b33f5e7010f3a020b9f07f8b73ac29cb6a719
[policy/clamp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2021 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.clamp.controlloop.participant.dcae.httpclient;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.assertj.core.api.Assertions.fail;
25 import static org.junit.Assert.assertTrue;
26 import static org.mockserver.model.HttpRequest.request;
27 import static org.mockserver.model.HttpResponse.response;
28
29 import org.junit.AfterClass;
30 import org.junit.BeforeClass;
31 import org.junit.Test;
32 import org.mockserver.integration.ClientAndServer;
33 import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.CommonTestData;
34 import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
35 import org.onap.policy.clamp.controlloop.participant.dcae.model.Loop;
36 import org.onap.policy.common.utils.coder.Coder;
37 import org.onap.policy.common.utils.coder.StandardCoder;
38
39 /**
40  * Class to perform unit test of {@link ClampHttpClient}.
41  *
42  */
43 public class ClampHttpClientTest {
44
45     private static final String LOOP = "pmsh_loop";
46     private static final String BLUEPRINT_DEPLOYED = "BLUEPRINT_DEPLOYED";
47
48     private static ClientAndServer mockServer;
49     private static ParticipantDcaeParameters parameters;
50     public static final Coder CODER = new StandardCoder();
51
52     /**
53      * Set up.
54      */
55     @BeforeClass
56     public static void setUp() {
57         CommonTestData commonTestData = new CommonTestData();
58
59         parameters = commonTestData.toObject(
60                 commonTestData.getParticipantParameterGroupMap(CommonTestData.PARTICIPANT_GROUP_NAME),
61                 ParticipantDcaeParameters.class);
62
63         mockServer = ClientAndServer.startClientAndServer(parameters.getClampClientParameters().getPort());
64
65         mockServer.when(request().withMethod("GET").withPath("/restservices/clds/v2/loop/getstatus/" + LOOP))
66                 .respond(response().withBody(CommonTestData.createJsonStatus(BLUEPRINT_DEPLOYED)).withStatusCode(200));
67
68         mockServer.when(request().withMethod("PUT").withPath("/restservices/clds/v2/loop/deploy/" + LOOP))
69                 .respond(response().withStatusCode(202));
70
71         mockServer.when(request().withMethod("PUT").withPath("/restservices/clds/v2/loop/undeploy/" + LOOP))
72                 .respond(response().withStatusCode(202));
73     }
74
75     @AfterClass
76     public static void stopServer() {
77         mockServer.stop();
78         mockServer = null;
79     }
80
81     @Test
82     public void test_getstatus() throws Exception {
83         try (ClampHttpClient client = new ClampHttpClient(parameters.getClampClientParameters())) {
84
85             Loop status = client.getstatus(LOOP);
86
87             String json = CommonTestData.createJsonStatus(BLUEPRINT_DEPLOYED);
88             Loop loop = CODER.convert(json, Loop.class);
89
90             assertThat(ClampHttpClient.getStatusCode(status)).isEqualTo(ClampHttpClient.getStatusCode(loop));
91
92         } catch (Exception e) {
93             fail(e.getMessage());
94         }
95     }
96
97     @Test
98     public void test_deploy() throws Exception {
99         try (ClampHttpClient client = new ClampHttpClient(parameters.getClampClientParameters())) {
100
101             assertTrue(client.deploy(LOOP));
102
103         } catch (Exception e) {
104             fail(e.getMessage());
105         }
106     }
107
108     @Test
109     public void test_undeploy() throws Exception {
110         try (ClampHttpClient client = new ClampHttpClient(parameters.getClampClientParameters())) {
111
112             assertTrue(client.undeploy(LOOP));
113
114         } catch (Exception e) {
115             fail(e.getMessage());
116         }
117     }
118
119     @Test
120     public void test_getStatusCodeNull() {
121         assertThat(ClampHttpClient.getStatusCode(null)).isEqualTo(ClampHttpClient.STATUS_NOT_FOUND);
122     }
123
124     @Test
125     public void test_getStatusEmptyMap() {
126         assertThat(ClampHttpClient.getStatusCode(new Loop())).isEqualTo(ClampHttpClient.STATUS_NOT_FOUND);
127     }
128 }