Merge "Alter PDP_UPDATE message to store lists of delpoyed/undeployed policies"
[policy/models.git] / models-interactions / model-impl / appc / src / test / java / org / onap / policy / appc / CommonHeaderTest.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.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotEquals;
26 import static org.junit.Assert.assertNotNull;
27
28 import java.time.Instant;
29 import java.util.ArrayList;
30 import java.util.List;
31 import java.util.Map;
32 import java.util.UUID;
33 import java.util.function.BiConsumer;
34 import org.junit.Test;
35
36 public class CommonHeaderTest {
37
38     private static final String KANSAS = "Kansas";
39     private static final String DOROTHY = "Dorothy";
40     private static final String CAN_I_GO_HOME = "Can I go home?";
41
42     @Test
43     public void testCommonHeader() {
44         CommonHeader commonHeader = new CommonHeader();
45         assertNotNull(commonHeader);
46         assertNotNull(new CommonHeader(commonHeader));
47         assertNotEquals(0, commonHeader.hashCode());
48
49         commonHeader.setApiVer(KANSAS);
50         assertEquals(KANSAS, commonHeader.getApiVer());
51
52         List<Map<String, String>> flagSet = new ArrayList<>();
53         commonHeader.setFlags(flagSet);
54         assertEquals(flagSet, commonHeader.getFlags());
55
56         commonHeader.setOriginatorId(DOROTHY);
57         assertEquals(DOROTHY, commonHeader.getOriginatorId());
58
59         UUID requestId = UUID.randomUUID();
60         commonHeader.setRequestId(requestId);
61         assertEquals(requestId, commonHeader.getRequestId());
62
63         List<String> requestTrackSet = new ArrayList<>();
64         commonHeader.setRequestTrack(requestTrackSet);
65         assertEquals(requestTrackSet, commonHeader.getRequestTrack());
66
67         commonHeader.setSubRequestId(CAN_I_GO_HOME);
68         assertEquals(CAN_I_GO_HOME, commonHeader.getSubRequestId());
69
70         Instant timestamp = Instant.now();
71         commonHeader.setTimeStamp(timestamp);
72         assertEquals(timestamp, commonHeader.getTimeStamp());
73
74         assertNotEquals(0, commonHeader.hashCode());
75
76         assertEquals("CommonHeader [TimeStamp=", commonHeader.toString().substring(0, 24));
77
78         CommonHeader copiedCommonHeader = new CommonHeader();
79         copiedCommonHeader.setApiVer(commonHeader.getApiVer());
80         copiedCommonHeader.setFlags(commonHeader.getFlags());
81         copiedCommonHeader.setOriginatorId(commonHeader.getOriginatorId());
82         copiedCommonHeader.setRequestId(commonHeader.getRequestId());
83         copiedCommonHeader.setRequestTrack(commonHeader.getRequestTrack());
84         copiedCommonHeader.setSubRequestId(commonHeader.getSubRequestId());
85         copiedCommonHeader.setTimeStamp(commonHeader.getTimeStamp());
86
87         assertEquals(commonHeader, (Object) commonHeader);
88         assertEquals(commonHeader, copiedCommonHeader);
89         assertNotEquals(commonHeader, null);
90         assertNotEquals(commonHeader, (Object) "Hello");
91
92         CommonHeader clonedCommonHeader = new CommonHeader(commonHeader);
93         clonedCommonHeader.setApiVer(commonHeader.getApiVer());
94         clonedCommonHeader.setTimeStamp(commonHeader.getTimeStamp());
95
96         assertEquals(commonHeader, clonedCommonHeader);
97
98         checkField(KANSAS, CommonHeader::setApiVer);
99         checkField(flagSet, CommonHeader::setFlags);
100         checkField(DOROTHY, CommonHeader::setOriginatorId);
101         checkField(requestId, CommonHeader::setRequestId);
102         checkField(requestTrackSet, CommonHeader::setRequestTrack);
103         checkField(CAN_I_GO_HOME, CommonHeader::setSubRequestId);
104         checkField(timestamp, CommonHeader::setTimeStamp);
105     }
106
107     private <T> void checkField(T value, BiConsumer<CommonHeader, T> setter) {
108         CommonHeader header1 = new CommonHeader();
109         CommonHeader header2 = new CommonHeader(header1);
110
111         setter.accept(header2, null);
112
113         setter.accept(header1, value);
114         assertNotEquals(header1, header2);
115
116         setter.accept(header2, value);
117         assertEquals(header1, header2);
118
119         setter.accept(header1, null);
120         assertNotEquals(header1, header2);
121     }
122 }