Dmaap micro service jar
[appc.git] / services / appc-dmaap-service / appc-event-listener-bundle / src / test / java / org / onap / appc / listener / LCM / operation / GenericProviderOperationsRequestFormatterTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2018 Nokia Solutions and Networks
8  * =============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * ============LICENSE_END=========================================================
22  */
23 package org.onap.appc.listener.LCM.operation;
24
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNull;
27 import static org.onap.appc.listener.TestUtil.JSON_OUTPUT_BODY_STR;
28
29 import com.fasterxml.jackson.databind.JsonNode;
30 import java.net.MalformedURLException;
31 import java.net.URL;
32 import org.json.JSONObject;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.onap.appc.exceptions.APPCException;
36 import org.onap.appc.listener.LCM.model.InputBody;
37 import org.onap.appc.listener.LCM.model.ResponseStatus;
38 import org.onap.appc.listener.util.Mapper;
39
40 public class GenericProviderOperationsRequestFormatterTest {
41
42     private static final String INVALID_JSON_OUTPUT_BODY_STR =
43         "{\"output\":{\"common-header\":{\"timestamp\":\"2016-08-03T08:50:18.97Z\","
44             + "\"api-ver\":\"1\",\"flags\":{\"force\":\"TRUE\",\"ttl\":\"9900\"},\"sub-request-id\":\"1\","
45             + "\"request-id\":\"123\",\"originator-id\":\"1\"}}}";
46
47     private GenericProviderOperationRequestFormatter requestFormatter;
48
49
50     @Before
51     public void setup() {
52         requestFormatter = new GenericProviderOperationRequestFormatter();
53     }
54
55     @Test
56     public void should_build_path() throws MalformedURLException {
57         String result = requestFormatter.buildPath(new URL("http://127.0.0.1/abc/def"), "test");
58         assertEquals("/abc/def:test", result);
59     }
60
61     @Test
62     public void should_build_request_json() {
63         InputBody inputBody = new InputBody();
64         inputBody.setPayload("\"key1\": \"value1\", \"key2\": \"value2\"");
65
66         assertEquals("{\"input\": {\"payload\":\"\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\"\"}}",
67             requestFormatter.buildRequest(inputBody));
68     }
69
70     @Test(expected = APPCException.class)
71     public void should_throw_when_invalid_json() throws APPCException {
72
73         JsonNode jsonNode = Mapper.toJsonNodeFromJsonString(INVALID_JSON_OUTPUT_BODY_STR);
74         requestFormatter.getResponseStatus(jsonNode);
75     }
76
77     @Test
78     public void should_extract_response_status() throws APPCException {
79
80         JsonNode jsonNode = Mapper.toJsonNodeFromJsonString(JSON_OUTPUT_BODY_STR);
81         ResponseStatus status = requestFormatter.getResponseStatus(jsonNode);
82
83         assertEquals("test message", status.getValue());
84         assertEquals(Integer.valueOf(200), status.getCode());
85     }
86
87     @Test
88     public void should_return_extract_locked_field() throws APPCException {
89
90         assertNull(requestFormatter.getLocked(new JSONObject(INVALID_JSON_OUTPUT_BODY_STR)));
91         assertEquals("test-locked", requestFormatter.getLocked(new JSONObject(JSON_OUTPUT_BODY_STR)));
92     }
93 }