2 * ============LICENSE_START=======================================================
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
22 package org.onap.policy.appc;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotEquals;
26 import static org.junit.Assert.assertNotNull;
28 import java.time.Instant;
29 import java.util.ArrayList;
30 import java.util.List;
32 import java.util.UUID;
33 import java.util.function.BiConsumer;
34 import org.junit.Test;
36 public class CommonHeaderTest {
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?";
43 public void testCommonHeader() {
44 CommonHeader commonHeader = new CommonHeader();
45 assertNotNull(commonHeader);
46 assertNotNull(new CommonHeader(commonHeader));
47 assertNotEquals(0, commonHeader.hashCode());
49 commonHeader.setApiVer(KANSAS);
50 assertEquals(KANSAS, commonHeader.getApiVer());
52 List<Map<String, String>> flagSet = new ArrayList<>();
53 commonHeader.setFlags(flagSet);
54 assertEquals(flagSet, commonHeader.getFlags());
56 commonHeader.setOriginatorId(DOROTHY);
57 assertEquals(DOROTHY, commonHeader.getOriginatorId());
59 UUID requestId = UUID.randomUUID();
60 commonHeader.setRequestId(requestId);
61 assertEquals(requestId, commonHeader.getRequestId());
63 List<String> requestTrackSet = new ArrayList<>();
64 commonHeader.setRequestTrack(requestTrackSet);
65 assertEquals(requestTrackSet, commonHeader.getRequestTrack());
67 commonHeader.setSubRequestId(CAN_I_GO_HOME);
68 assertEquals(CAN_I_GO_HOME, commonHeader.getSubRequestId());
70 Instant timestamp = Instant.now();
71 commonHeader.setTimeStamp(timestamp);
72 assertEquals(timestamp, commonHeader.getTimeStamp());
74 assertNotEquals(0, commonHeader.hashCode());
76 assertEquals("CommonHeader [TimeStamp=", commonHeader.toString().substring(0, 24));
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());
87 assertEquals(commonHeader, (Object) commonHeader);
88 assertEquals(commonHeader, copiedCommonHeader);
89 assertNotEquals(commonHeader, null);
90 assertNotEquals(commonHeader, (Object) "Hello");
92 CommonHeader clonedCommonHeader = new CommonHeader(commonHeader);
93 clonedCommonHeader.setApiVer(commonHeader.getApiVer());
94 clonedCommonHeader.setTimeStamp(commonHeader.getTimeStamp());
96 assertEquals(commonHeader, clonedCommonHeader);
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);
107 private <T> void checkField(T value, BiConsumer<CommonHeader, T> setter) {
108 CommonHeader header1 = new CommonHeader();
109 CommonHeader header2 = new CommonHeader(header1);
111 setter.accept(header2, null);
113 setter.accept(header1, value);
114 assertNotEquals(header1, header2);
116 setter.accept(header2, value);
117 assertEquals(header1, header2);
119 setter.accept(header1, null);
120 assertNotEquals(header1, header2);