Update policy committers in policy/models
[policy/models.git] / models-interactions / model-impl / so / src / test / java / org / onap / policy / so / SoRequestDetailsTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * so
4  * ================================================================================
5  * Copyright (C) 2018 Ericsson. All rights reserved.
6  * Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved
7  * Modifications Copyright (C) 2019, 2024 Nordix Foundation.
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.so;
24
25 import static org.junit.jupiter.api.Assertions.assertEquals;
26 import static org.junit.jupiter.api.Assertions.assertNotEquals;
27 import static org.junit.jupiter.api.Assertions.assertNotNull;
28 import static org.junit.jupiter.api.Assertions.assertNull;
29
30 import java.util.ArrayList;
31 import java.util.List;
32 import java.util.function.BiConsumer;
33 import org.junit.jupiter.api.Test;
34
35 class SoRequestDetailsTest {
36
37     @Test
38     void testConstructor() {
39         SoRequestDetails obj = new SoRequestDetails();
40
41         assertNull(obj.getCloudConfiguration());
42         assertNull(obj.getModelInfo());
43         assertNull(obj.getRequestInfo());
44         assertNull(obj.getRequestParameters());
45         assertNull(obj.getSubscriberInfo());
46
47         assertNotNull(obj.getRelatedInstanceList());
48         assertEquals(0, obj.getRelatedInstanceList().size());
49     }
50
51     @Test
52     void testSetGet() {
53         SoRequestDetails obj = new SoRequestDetails();
54
55         SoCloudConfiguration cloudConfiguration = new SoCloudConfiguration();
56         obj.setCloudConfiguration(cloudConfiguration);
57         assertEquals(cloudConfiguration, obj.getCloudConfiguration());
58
59         SoModelInfo modelInfo = new SoModelInfo();
60         obj.setModelInfo(modelInfo);
61         assertEquals(modelInfo, obj.getModelInfo());
62
63         SoRequestInfo requestInfo = new SoRequestInfo();
64         obj.setRequestInfo(requestInfo);
65         assertEquals(requestInfo, obj.getRequestInfo());
66
67         SoRequestParameters requestParameters = new SoRequestParameters();
68         obj.setRequestParameters(requestParameters);
69         assertEquals(requestParameters, obj.getRequestParameters());
70
71         SoSubscriberInfo subscriberInfo = new SoSubscriberInfo();
72         obj.setSubscriberInfo(subscriberInfo);
73         assertEquals(subscriberInfo, obj.getSubscriberInfo());
74     }
75
76     @Test
77     void testSoMRequestDetailsMethods() {
78         SoRequestDetails details = new SoRequestDetails();
79         assertNotNull(details);
80         assertNotEquals(0, details.hashCode());
81
82         SoCloudConfiguration cloudConfiguration = new SoCloudConfiguration();
83         details.setCloudConfiguration(cloudConfiguration);
84         assertEquals(cloudConfiguration, details.getCloudConfiguration());
85         assertNotEquals(0, details.hashCode());
86
87         SoModelInfo modelInfo = new SoModelInfo();
88         details.setModelInfo(modelInfo);
89         assertEquals(modelInfo, details.getModelInfo());
90         assertNotEquals(0, details.hashCode());
91
92         List<SoRelatedInstanceListElement> relatedInstanceList = new ArrayList<>();
93         details.setRelatedInstanceList(relatedInstanceList);
94         assertEquals(relatedInstanceList, details.getRelatedInstanceList());
95         assertNotEquals(0, details.hashCode());
96
97         SoRequestInfo requestInfo = new SoRequestInfo();
98         details.setRequestInfo(requestInfo);
99         assertEquals(requestInfo, details.getRequestInfo());
100         assertNotEquals(0, details.hashCode());
101
102         SoRequestParameters requestParameters = new SoRequestParameters();
103         details.setRequestParameters(requestParameters);
104         assertEquals(requestParameters, details.getRequestParameters());
105         assertNotEquals(0, details.hashCode());
106
107         SoSubscriberInfo subscriberInfo = new SoSubscriberInfo();
108         details.setSubscriberInfo(subscriberInfo);
109         assertEquals(subscriberInfo, details.getSubscriberInfo());
110         assertNotEquals(0, details.hashCode());
111
112         assertEquals("SoRequestDetails(modelInfo=org.onap.policy.so", details.toString().substring(0,  45));
113
114         SoRequestDetails copiedDetails = new SoRequestDetails(details);
115
116         assertEquals(details, (Object) details);
117         assertEquals(details, copiedDetails);
118         assertNotNull(details);
119         assertNotEquals(details, (Object) "Hello");
120
121         checkField(cloudConfiguration, SoRequestDetails::setCloudConfiguration);
122         checkField(modelInfo, SoRequestDetails::setModelInfo);
123         checkField(requestInfo, SoRequestDetails::setRequestInfo);
124         checkField(requestParameters, SoRequestDetails::setRequestParameters);
125         checkField(subscriberInfo, SoRequestDetails::setSubscriberInfo);
126         checkField(relatedInstanceList, SoRequestDetails::setRelatedInstanceList);
127     }
128
129     private <T> void checkField(T value, BiConsumer<SoRequestDetails, T> setter) {
130         SoRequestDetails details1 = new SoRequestDetails();
131         SoRequestDetails details2 = new SoRequestDetails(details1);
132
133         setter.accept(details2, null);
134
135         setter.accept(details1, value);
136         assertNotEquals(details1, details2);
137
138         setter.accept(details2, value);
139         assertEquals(details1, details2);
140
141         setter.accept(details1, null);
142         assertNotEquals(details1, details2);
143     }
144 }