LCM package test classes refactor
[appc.git] / appc-event-listener / 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 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  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  * ============LICENSE_END=========================================================
23  */
24 package org.onap.appc.listener.LCM.operation;
25
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertNull;
28 import static org.onap.appc.listener.TestUtil.JSON_OUTPUT_BODY_STR;
29
30 import com.fasterxml.jackson.databind.JsonNode;
31 import java.net.MalformedURLException;
32 import java.net.URL;
33 import org.json.JSONObject;
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.onap.appc.exceptions.APPCException;
37 import org.onap.appc.listener.LCM.model.InputBody;
38 import org.onap.appc.listener.LCM.model.ResponseStatus;
39 import org.onap.appc.listener.util.Mapper;
40
41 public class GenericProviderOperationsRequestFormatterTest {
42
43     private static final String INVALID_JSON_OUTPUT_BODY_STR =
44         "{\"output\":{\"common-header\":{\"timestamp\":\"2016-08-03T08:50:18.97Z\","
45             + "\"api-ver\":\"1\",\"flags\":{\"force\":\"TRUE\",\"ttl\":\"9900\"},\"sub-request-id\":\"1\","
46             + "\"request-id\":\"123\",\"originator-id\":\"1\"}}}";
47
48     private GenericProviderOperationRequestFormatter requestFormatter;
49
50
51     @Before
52     public void setup() {
53         requestFormatter = new GenericProviderOperationRequestFormatter();
54     }
55
56     @Test
57     public void should_build_path() throws MalformedURLException {
58         String result = requestFormatter.buildPath(new URL("http://127.0.0.1/abc/def"), "test");
59         assertEquals("/abc/def:test", result);
60     }
61
62     @Test
63     public void should_build_request_json() {
64         InputBody inputBody = new InputBody();
65         inputBody.setPayload("\"key1\": \"value1\", \"key2\": \"value2\"");
66
67         assertEquals("{\"input\": {\"payload\":\"\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\"\"}}",
68             requestFormatter.buildRequest(inputBody));
69     }
70
71     @Test(expected = APPCException.class)
72     public void should_throw_when_invalid_json() throws APPCException {
73
74         JsonNode jsonNode = Mapper.toJsonNodeFromJsonString(INVALID_JSON_OUTPUT_BODY_STR);
75         requestFormatter.getResponseStatus(jsonNode);
76     }
77
78     @Test
79     public void should_extract_response_status() throws APPCException {
80
81         JsonNode jsonNode = Mapper.toJsonNodeFromJsonString(JSON_OUTPUT_BODY_STR);
82         ResponseStatus status = requestFormatter.getResponseStatus(jsonNode);
83
84         assertEquals("test message", status.getValue());
85         assertEquals(Integer.valueOf(200), status.getCode());
86     }
87
88     @Test
89     public void should_return_extract_locked_field() throws APPCException {
90
91         assertNull(requestFormatter.getLocked(new JSONObject(INVALID_JSON_OUTPUT_BODY_STR)));
92         assertEquals("test-locked", requestFormatter.getLocked(new JSONObject(JSON_OUTPUT_BODY_STR)));
93     }
94 }