Merge "Convert models to JUnit 5"
[policy/models.git] / models-interactions / model-impl / appc / src / test / java / org / onap / policy / appc / RequestTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * appc
4  * ================================================================================
5  * Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2019 Nordix Foundation.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.appc;
23
24 import static org.assertj.core.api.Assertions.assertThat;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotEquals;
27 import static org.junit.Assert.assertNotNull;
28
29 import java.util.HashMap;
30 import java.util.Map;
31 import java.util.function.BiConsumer;
32 import org.junit.Test;
33
34 public class RequestTest {
35
36     private static final String WIZARD = "Wizard";
37     private static final String GO_TO_OZ = "Go to Oz";
38
39     @Test
40     public void testRequest() {
41         Request request = new Request();
42         assertNotNull(request);
43         assertNotEquals(0, request.hashCode());
44
45         CommonHeader commonHeader = new CommonHeader();
46
47         request.setCommonHeader(commonHeader);
48         assertEquals(commonHeader, request.getCommonHeader());
49
50         request.setAction(GO_TO_OZ);
51         assertEquals(GO_TO_OZ, request.getAction());
52
53         request.setObjectId(WIZARD);
54         assertEquals(WIZARD, request.getObjectId());
55
56         request.setTargetId("Oz");
57         assertEquals("Oz", request.getTargetId());
58
59         Map<String, Object> payload = new HashMap<>();
60         payload.put("North", "Good Witch");
61         payload.put("West", "Bad Witch");
62
63         request.setPayload(payload);
64         assertEquals(payload, request.getPayload());
65
66         assertNotEquals(0, request.hashCode());
67
68         assertThat(request.toString()).startsWith("Request(commonHeader=CommonHeader(timeStamp=");
69
70         Request copiedRequest = new Request();
71         copiedRequest.setCommonHeader(request.getCommonHeader());
72         copiedRequest.setAction(request.getAction());
73         copiedRequest.setObjectId(request.getObjectId());
74         copiedRequest.setPayload(request.getPayload());
75         copiedRequest.setTargetId(request.getTargetId());
76
77         assertEquals(request, (Object) request);
78         assertEquals(request, copiedRequest);
79         assertNotEquals(request, null);
80         assertNotEquals(request, (Object) "Hello");
81
82         checkField(commonHeader, Request::setCommonHeader);
83         checkField(GO_TO_OZ, Request::setAction);
84         checkField(WIZARD, Request::setObjectId);
85         checkField("Oz", Request::setTargetId);
86         checkField(payload, Request::setPayload);
87     }
88
89     private <T> void checkField(T value, BiConsumer<Request, T> setter) {
90         Request request1 = new Request();
91         Request request2 = new Request();
92
93         setter.accept(request2, null);
94
95         setter.accept(request1, value);
96         assertNotEquals(request1, request2);
97
98         setter.accept(request2, value);
99         assertEquals(request1, request2);
100
101         setter.accept(request1, null);
102         assertNotEquals(request1, request2);
103     }
104 }