9d497602f555f4bc20ff8458a047d0bfe462403d
[policy/models.git] / models-interactions / model-impl / sdnr / src / test / java / org / onap / policy / sdnr / PciCommonHeaderTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * sdnr
4  * ================================================================================
5  * Copyright (C) 2018 Wipro Limited Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2019 Nordix Foundation.
7  * Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
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  * ============LICENSE_END=========================================================
21  */
22
23 package org.onap.policy.sdnr;
24
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.time.Instant;
30 import java.util.HashMap;
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 PciCommonHeaderTest {
37
38     private static final String KANSAS = "Kansas";
39     private static final String CAN_I_GO_HOME = "Can I go home?";
40
41     @Test
42     public void testPciCommonHeader() {
43         PciCommonHeader commonHeader = new PciCommonHeader();
44         assertNotNull(commonHeader);
45         assertNotNull(new PciCommonHeader(commonHeader));
46         assertNotEquals(0, commonHeader.hashCode());
47
48         commonHeader.setApiVer(KANSAS);
49         assertEquals(KANSAS, commonHeader.getApiVer());
50
51         Map<String, String> flagMap = new HashMap<>();
52         commonHeader.setFlags(flagMap);
53         assertEquals(flagMap, commonHeader.getFlags());
54
55         Map<String, String> requestMap = new HashMap<>();
56         commonHeader.setRequestTrack(requestMap);
57         assertEquals(requestMap, commonHeader.getRequestTrack());
58
59         UUID requestId = UUID.randomUUID();
60         commonHeader.setRequestId(requestId);
61         assertEquals(requestId, commonHeader.getRequestId());
62
63         commonHeader.setSubRequestId(CAN_I_GO_HOME);
64         assertEquals(CAN_I_GO_HOME, commonHeader.getSubRequestId());
65
66         Instant timestamp = Instant.now();
67         commonHeader.setTimeStamp(timestamp);
68         assertEquals(timestamp, commonHeader.getTimeStamp());
69
70         assertNotEquals(0, commonHeader.hashCode());
71
72         assertEquals("CommonHeader [timeStamp=", commonHeader.toString().substring(0, 24));
73
74         PciCommonHeader copiedPciCommonHeader = new PciCommonHeader();
75         copiedPciCommonHeader.setApiVer(commonHeader.getApiVer());
76         copiedPciCommonHeader.setFlags(commonHeader.getFlags());
77         copiedPciCommonHeader.setRequestId(commonHeader.getRequestId());
78         copiedPciCommonHeader.setSubRequestId(commonHeader.getSubRequestId());
79         copiedPciCommonHeader.setTimeStamp(commonHeader.getTimeStamp());
80
81         assertEquals(commonHeader, (Object) commonHeader);
82         assertEquals(commonHeader, copiedPciCommonHeader);
83         assertNotEquals(commonHeader, null);
84         assertNotEquals(commonHeader, (Object) "Hello");
85
86         PciCommonHeader clonedPciCommonHeader = new PciCommonHeader(commonHeader);
87         clonedPciCommonHeader.setApiVer(commonHeader.getApiVer());
88         clonedPciCommonHeader.setTimeStamp(commonHeader.getTimeStamp());
89
90         assertEquals(commonHeader, clonedPciCommonHeader);
91
92         checkField(KANSAS, PciCommonHeader::setApiVer);
93         checkField(flagMap, PciCommonHeader::setFlags);
94         checkField(requestMap, PciCommonHeader::setRequestTrack);
95         checkField(requestId, PciCommonHeader::setRequestId);
96         checkField(CAN_I_GO_HOME, PciCommonHeader::setSubRequestId);
97         checkField(timestamp, PciCommonHeader::setTimeStamp);
98     }
99
100     private <T> void checkField(T value, BiConsumer<PciCommonHeader, T> setter) {
101         PciCommonHeader details1 = new PciCommonHeader();
102         PciCommonHeader details2 = new PciCommonHeader(details1);
103
104         setter.accept(details2, null);
105
106         setter.accept(details1, value);
107         assertNotEquals(details1, details2);
108
109         setter.accept(details2, value);
110         assertEquals(details1, details2);
111
112         setter.accept(details1, null);
113         assertNotEquals(details1, details2);
114     }
115 }