2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.pap.main.comm.msgdata;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertNull;
26 import static org.junit.Assert.assertSame;
27 import static org.junit.Assert.assertTrue;
29 import java.util.ArrayList;
30 import java.util.Arrays;
31 import java.util.stream.Collectors;
32 import org.junit.Before;
33 import org.junit.Test;
34 import org.onap.policy.models.pdp.concepts.PdpStateChange;
35 import org.onap.policy.models.pdp.concepts.PdpStatus;
36 import org.onap.policy.models.pdp.concepts.PdpUpdate;
37 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
38 import org.onap.policy.pap.main.comm.CommonRequestBase;
40 public class UpdateReqTest extends CommonRequestBase {
42 private UpdateReq data;
43 private PdpUpdate update;
44 private PdpStatus response;
48 * @throws Exception if an error occurs
51 public void setUp() throws Exception {
54 response = new PdpStatus();
56 update = makeUpdate();
58 response.setName(MY_NAME);
59 response.setPdpGroup(update.getPdpGroup());
60 response.setPdpSubgroup(update.getPdpSubgroup());
62 update.getPolicies().stream().map(ToscaPolicy::getIdentifier).collect(Collectors.toList()));
64 data = new UpdateReq(reqParams, MY_REQ_NAME, update);
68 public void testGetMessage() {
69 assertEquals(MY_REQ_NAME, data.getName());
70 assertSame(update, data.getMessage());
74 public void testCheckResponse() {
75 assertNull(data.checkResponse(response));
77 // both policy lists null
78 update.setPolicies(null);
79 response.setPolicies(null);
80 assertNull(data.checkResponse(response));
84 public void testCheckResponse_NullName() {
85 response.setName(null);
87 assertEquals("null PDP name", data.checkResponse(response));
91 public void testCheckResponse_NullMsgName() {
94 assertEquals(null, data.checkResponse(response));
98 public void testUpdateReqCheckResponse_MismatchedGroup() {
99 response.setPdpGroup(DIFFERENT);
101 assertEquals("group does not match", data.checkResponse(response));
105 public void testUpdateReqCheckResponse_MismatchedSubGroup() {
106 response.setPdpSubgroup(DIFFERENT);
108 assertEquals("subgroup does not match", data.checkResponse(response));
112 public void testUpdateReqCheckResponse_MismatchedPolicies() {
113 ArrayList<ToscaPolicy> policies = new ArrayList<>(update.getPolicies());
114 policies.set(0, makePolicy(DIFFERENT, "10.0.0"));
116 response.setPolicies(policies.stream().map(ToscaPolicy::getIdentifier).collect(Collectors.toList()));
118 assertEquals("policies do not match", data.checkResponse(response));
122 public void testUpdateReqCheckResponse_MismatchedPolicies_Null_NotNull() {
123 update.setPolicies(null);
125 assertEquals("policies do not match", data.checkResponse(response));
129 public void testUpdateReqCheckResponse_MismatchedPolicies_NotNull_Null() {
130 response.setPolicies(null);
132 assertEquals("policies do not match", data.checkResponse(response));
136 public void isSameContent() {
137 PdpUpdate msg2 = new PdpUpdate(update);
138 msg2.setName("world");
139 assertTrue(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
141 // different request type
142 assertFalse(data.isSameContent(new StateChangeReq(reqParams, MY_REQ_NAME, new PdpStateChange())));
144 // both policy lists null
145 update.setPolicies(null);
146 msg2.setPolicies(null);
147 assertTrue(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
151 public void isSameContent_BothGroupNamesNull() {
152 PdpUpdate msg2 = new PdpUpdate(update);
153 msg2.setPdpGroup(null);
154 update.setPdpGroup(null);
155 assertTrue(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
159 public void isSameContent_BothSubGroupNamesNull() {
160 PdpUpdate msg2 = new PdpUpdate(update);
161 msg2.setPdpSubgroup(null);
162 update.setPdpSubgroup(null);
163 assertTrue(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
167 public void isSameContent_DiffGroup() {
168 PdpUpdate msg2 = new PdpUpdate(update);
169 msg2.setPdpGroup(null);
170 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
172 msg2.setPdpGroup(DIFFERENT);
173 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
175 update.setPdpGroup(null);
176 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
180 public void isSameContent_DiffSubGroup() {
181 PdpUpdate msg2 = new PdpUpdate(update);
182 msg2.setPdpSubgroup(null);
183 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
185 msg2.setPdpSubgroup(DIFFERENT);
186 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
188 update.setPdpSubgroup(null);
189 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
193 public void isSameContent_DiffPolicies() {
194 PdpUpdate msg2 = new PdpUpdate(update);
196 ArrayList<ToscaPolicy> policies = new ArrayList<>(update.getPolicies());
197 policies.set(0, makePolicy(DIFFERENT, "10.0.0"));
198 msg2.setPolicies(policies);
200 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
204 public void isSameContent_DiffPolicies_NotNull_Null() {
205 PdpUpdate msg2 = new PdpUpdate(update);
206 msg2.setPolicies(null);
208 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
212 public void isSameContent_DiffPolicies_Null_NotNull() {
213 PdpUpdate msg2 = new PdpUpdate(update);
215 update.setPolicies(null);
217 assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
221 public void testGetPriority() {
222 assertTrue(data.getPriority() > new StateChangeReq(reqParams, MY_REQ_NAME, new PdpStateChange()).getPriority());
226 * Makes an update message.
228 * @return a new update message
230 private PdpUpdate makeUpdate() {
231 PdpUpdate upd = new PdpUpdate();
233 upd.setDescription("update-description");
234 upd.setName(MY_NAME);
235 upd.setPdpGroup(MY_GROUP);
236 upd.setPdpSubgroup(MY_SUBGROUP);
238 ToscaPolicy policy1 = makePolicy("policy-1-a", "1.0.0");
239 ToscaPolicy policy2 = makePolicy("policy-2-a", "1.1.0");
241 upd.setPolicies(Arrays.asList(policy1, policy2));