2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
5 * Modifications Copyright (C) 2019 Nordix Foundation.
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.controlloop.policy.guard;
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.assertTrue;
28 import java.util.ArrayList;
29 import java.util.HashMap;
30 import java.util.List;
33 import org.junit.Test;
35 public class ConstraintTest {
38 public void testConstraint() {
39 Constraint constraint = new Constraint();
41 assertNull(constraint.getFreq_limit_per_target());
42 assertNull(constraint.getTime_window());
43 assertNull(constraint.getActive_time_range());
44 assertNull(constraint.getBlacklist());
48 public void testGetAndSetFreq_limit_per_target() {
49 Integer freqLimitPerTarget = 10;
50 Constraint constraint = new Constraint();
51 constraint.setFreq_limit_per_target(freqLimitPerTarget);
52 assertEquals(freqLimitPerTarget, constraint.getFreq_limit_per_target());
56 public void testGetAndSetTime_window() {
57 Map<String, String> timeWindow = new HashMap<>();
58 timeWindow.put("timeWindowKey", "timeWindowValue");
59 Constraint constraint = new Constraint();
60 constraint.setTime_window(timeWindow);
61 assertEquals(timeWindow, constraint.getTime_window());
65 public void testGetAndSetActive_time_range() {
66 Map<String, String> activeTimeRange = new HashMap<>();
67 activeTimeRange.put("timeWindowKey", "timeWindowValue");
68 Constraint constraint = new Constraint();
69 constraint.setActive_time_range(activeTimeRange);;
70 assertEquals(activeTimeRange, constraint.getActive_time_range());
74 public void testGetAndSetBlacklist() {
75 List<String> blacklist = new ArrayList<>();
76 blacklist.add("blacklist item");
77 Constraint constraint = new Constraint();
78 constraint.setBlacklist(blacklist);
79 assertEquals(blacklist, constraint.getBlacklist());
83 public void testConstraintIntegerMapOfStringString() {
84 Integer freqLimitPerTarget = 10;
85 Map<String, String> timeWindow = new HashMap<>();
87 Constraint constraint = new Constraint(freqLimitPerTarget, timeWindow);
89 assertEquals(freqLimitPerTarget, constraint.getFreq_limit_per_target());
90 assertEquals(timeWindow, constraint.getTime_window());
91 assertNull(constraint.getActive_time_range());
92 assertNull(constraint.getBlacklist());
96 public void testConstraintListOfString() {
97 List<String> blacklist = new ArrayList<>();
98 blacklist.add("blacklist item");
99 Constraint constraint = new Constraint(blacklist);
101 assertNull(constraint.getFreq_limit_per_target());
102 assertNull(constraint.getTime_window());
103 assertNull(constraint.getActive_time_range());
104 assertEquals(blacklist, constraint.getBlacklist());
108 public void testConstraintIntegerMapOfStringStringListOfString() {
109 Integer freqLimitPerTarget = 10;
110 Map<String, String> timeWindow = new HashMap<>();
111 List<String> blacklist = new ArrayList<>();
112 blacklist.add("blacklist item");
113 Constraint constraint = new Constraint(freqLimitPerTarget, timeWindow, blacklist);
115 assertEquals(freqLimitPerTarget, constraint.getFreq_limit_per_target());
116 assertEquals(timeWindow, constraint.getTime_window());
117 assertNull(constraint.getActive_time_range());
118 assertEquals(blacklist, constraint.getBlacklist());
122 public void testConstraintIntegerMapOfStringStringMapOfStringString() {
123 Integer freqLimitPerTarget = 10;
124 Map<String, String> timeWindow = new HashMap<>();
125 Map<String, String> activeTimeRange = new HashMap<>();
126 activeTimeRange.put("timeWindowKey", "timeWindowValue");
127 Constraint constraint = new Constraint(freqLimitPerTarget, timeWindow, activeTimeRange);
129 assertEquals(freqLimitPerTarget, constraint.getFreq_limit_per_target());
130 assertEquals(timeWindow, constraint.getTime_window());
131 assertEquals(activeTimeRange, constraint.getActive_time_range());
132 assertNull(constraint.getBlacklist());
137 public void testConstraintIntegerMapOfStringStringMapOfStringStringListOfString() {
138 Integer freqLimitPerTarget = 10;
139 Map<String, String> timeWindow = new HashMap<>();
140 Map<String, String> activeTimeRange = new HashMap<>();
141 activeTimeRange.put("timeWindowKey", "timeWindowValue");
142 List<String> blacklist = new ArrayList<>();
143 blacklist.add("blacklist item");
144 Constraint constraint = new Constraint(freqLimitPerTarget, timeWindow, activeTimeRange, blacklist);
146 assertEquals(freqLimitPerTarget, constraint.getFreq_limit_per_target());
147 assertEquals(timeWindow, constraint.getTime_window());
148 assertEquals(activeTimeRange, constraint.getActive_time_range());
149 assertEquals(blacklist, constraint.getBlacklist());
153 public void testConstraintConstraint() {
154 Integer freqLimitPerTarget = 10;
155 Map<String, String> timeWindow = new HashMap<>();
156 Map<String, String> activeTimeRange = new HashMap<>();
157 activeTimeRange.put("timeWindowKey", "timeWindowValue");
158 List<String> blacklist = new ArrayList<>();
159 blacklist.add("blacklist item");
160 Constraint constraint1 = new Constraint(freqLimitPerTarget, timeWindow, activeTimeRange, blacklist);
161 Constraint constraint2 = new Constraint(constraint1);
163 assertEquals(freqLimitPerTarget, constraint2.getFreq_limit_per_target());
164 assertEquals(timeWindow, constraint2.getTime_window());
165 assertEquals(activeTimeRange, constraint2.getActive_time_range());
166 assertEquals(blacklist, constraint2.getBlacklist());
170 public void testIsValid() {
171 Integer freqLimitPerTarget = 10;
172 final Map<String, String> timeWindow = new HashMap<>();
174 Constraint constraint = new Constraint();
175 assertTrue(constraint.isValid());
177 constraint.setFreq_limit_per_target(freqLimitPerTarget);
178 assertFalse(constraint.isValid());
180 constraint.setTime_window(timeWindow);
181 assertTrue(constraint.isValid());
183 constraint.setFreq_limit_per_target(null);
184 assertFalse(constraint.isValid());
188 public void testToString() {
189 Integer freqLimitPerTarget = 10;
190 Map<String, String> timeWindow = new HashMap<>();
191 Map<String, String> activeTimeRange = new HashMap<>();
192 activeTimeRange.put("timeWindowKey", "timeWindowValue");
193 List<String> blacklist = new ArrayList<>();
194 blacklist.add("blacklist item");
195 Constraint constraint = new Constraint(freqLimitPerTarget, timeWindow, activeTimeRange, blacklist);
197 assertEquals(constraint.toString(), "Constraint [freq_limit_per_target=" + freqLimitPerTarget + ", time_window="
198 + timeWindow + ", active_time_range=" + activeTimeRange + ", blacklist=" + blacklist + "]");
202 public void testEquals() {
203 Integer freqLimitPerTarget = 10;
204 final Map<String, String> timeWindow = new HashMap<>();
205 final Map<String, String> activeTimeRange = new HashMap<>();
206 List<String> blacklist = new ArrayList<>();
207 blacklist.add("blacklist item");
209 Constraint constraint1 = new Constraint();
210 Constraint constraint2 = new Constraint();
211 assertTrue(constraint1.equals(constraint2));
213 constraint1.setFreq_limit_per_target(freqLimitPerTarget);
214 assertFalse(constraint1.equals(constraint2));
215 constraint2.setFreq_limit_per_target(freqLimitPerTarget);
216 assertTrue(constraint1.equals(constraint2));
217 assertEquals(constraint1.hashCode(), constraint2.hashCode());
219 constraint1.setTime_window(timeWindow);
220 assertFalse(constraint1.equals(constraint2));
221 constraint2.setTime_window(timeWindow);
222 assertTrue(constraint1.equals(constraint2));
223 assertEquals(constraint1.hashCode(), constraint2.hashCode());
225 constraint1.setActive_time_range(activeTimeRange);
226 assertFalse(constraint1.equals(constraint2));
227 constraint2.setActive_time_range(activeTimeRange);
228 assertTrue(constraint1.equals(constraint2));
229 assertEquals(constraint1.hashCode(), constraint2.hashCode());
231 constraint1.setBlacklist(blacklist);
232 assertFalse(constraint1.equals(constraint2));
233 constraint2.setBlacklist(blacklist);
234 assertTrue(constraint1.equals(constraint2));
235 assertEquals(constraint1.hashCode(), constraint2.hashCode());
239 public void testEqualsSameObject() {
240 Constraint constraint = new Constraint();
241 assertTrue(constraint.equals(constraint));
245 public void testEqualsNull() {
246 Constraint constraint = new Constraint();
247 assertFalse(constraint.equals(null));
251 public void testEqualsInstanceOfDiffClass() {
252 Constraint constraint = new Constraint();
253 assertFalse(constraint.equals(""));