2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 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.rest.jpa;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertFalse;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import static org.junit.Assert.assertTrue;
30 import com.att.research.xacml.api.Identifier;
32 import java.util.ArrayList;
33 import java.util.Date;
34 import java.util.HashSet;
36 import org.junit.Before;
37 import org.junit.Test;
38 import org.onap.policy.common.logging.flexlogger.FlexLogger;
39 import org.onap.policy.common.logging.flexlogger.Logger;
41 public class ActionDictionaryJpaTest {
43 private static Logger logger = FlexLogger.getLogger(ActionDictionaryJpaTest.class);
44 private UserInfo userInfo;
49 * @throws Exception on test errors
52 public void setUp() throws Exception {
53 logger.info("setUp: Entering");
54 userInfo = new UserInfo();
55 userInfo.setUserLoginId("Test");
56 userInfo.setUserName("Test");
57 logger.info("setUp: exit");
61 public void testActionDictionary() {
62 ActionPolicyDict data = new ActionPolicyDict();
64 assertTrue(1 == data.getId());
65 data.setAttributeName("Test");
66 assertTrue("Test".equals(data.getAttributeName()));
67 data.setDescription("Test");
68 assertTrue("Test".equals(data.getDescription()));
70 assertTrue("Test".equals(data.getBody()));
71 data.setHeader("Test");
72 assertTrue("Test".equals(data.getHeader()));
73 data.setMethod("GET");
74 assertTrue("GET".equals(data.getMethod()));
76 assertTrue("JSON".equals(data.getType()));
77 data.setUrl("http://test.com");
78 assertTrue("http://test.com".equals(data.getUrl()));
81 data.setCreatedDate(new Date());
82 assertTrue(data.getCreatedDate() != null);
83 data.setModifiedDate(new Date());
84 assertTrue(data.getModifiedDate() != null);
85 data.setUserCreatedBy(userInfo);
86 assertTrue(data.getUserCreatedBy() != null);
87 data.setUserModifiedBy(userInfo);
88 assertTrue(data.getUserModifiedBy() != null);
92 public void testFunctionArgument() {
93 FunctionArgument data = new FunctionArgument();
95 assertTrue(1 == data.getArgIndex());
96 data.setDatatypeBean(new Datatype());
97 assertTrue(data.getDatatypeBean() != null);
98 data.setFunctionDefinition(new FunctionDefinition());
99 assertTrue(data.getFunctionDefinition() != null);
101 assertTrue(1 == data.getId());
102 assertFalse(data.isBag());
103 assertEquals("FunctionArgument(id=1", data.toString().substring(0, 21));
105 assertTrue(data.isBag());
106 assertTrue(1 == data.getIsBag());
107 new FunctionArgument(data);
111 public void testFunctionDefinition() {
112 FunctionDefinition data = new FunctionDefinition();
114 assertTrue(1 == data.getArgLb());
116 assertTrue(1 == data.getArgUb());
117 data.setDatatypeBean(new Datatype());
118 assertTrue(data.getDatatypeBean() != null);
119 data.setFunctionArguments(new ArrayList<>());
120 assertTrue(data.getFunctionArguments() != null);
121 data.setHigherOrderArgLb(1);
122 assertTrue(1 == data.getHigherOrderArgLb());
123 data.setHigherOrderArgUb(1);
124 assertTrue(1 == data.getHigherOrderArgUb());
126 assertTrue(1 == data.getId());
127 data.setIsBagReturn(1);
128 assertTrue(1 == data.getIsBagReturn());
129 data.setIsHigherOrder(1);
130 assertTrue(1 == data.getIsHigherOrder());
131 data.setShortname("Test");
132 assertTrue("Test".equals(data.getShortname()));
133 data.setXacmlid("Test");
134 assertTrue("Test".equals(data.getXacmlid()));
135 assertTrue(data.toString().startsWith("FunctionDefinition(id=1"));
136 assertTrue(data.isBagReturn());
137 data.setIsBagReturn(0);
138 assertTrue(data.isHigherOrder());
139 assertFalse(data.isBagReturn());
140 data.setIsHigherOrder(0);
141 assertFalse(data.isHigherOrder());
142 FunctionArgument functionArgument = new FunctionArgument();
143 functionArgument.setId(12345);
144 data.addFunctionArgument(functionArgument);
145 assertEquals(12345, data.getFunctionArguments().iterator().next().getId());
146 data.removeFunctionArgument(functionArgument);
147 assertTrue(data.getFunctionArguments().isEmpty());
151 public void testCategory() {
152 Category data = new Category();
154 data.setAttributes(new HashSet<>());
155 data.addAttribute(new Attribute());
156 data.removeAttribute(new Attribute());
161 assertTrue(data.getAttributes() != null);
162 data.setGrouping("Test");
163 assertTrue("Test".equals(data.getGrouping()));
165 assertTrue(1 == data.getId());
166 data.setShortName("Test");
167 assertTrue("Test".equals(data.getShortName()));
168 data.setXacmlId("Test");
169 assertTrue("Test".equals(data.getXacmlId()));
171 data.setIsStandard(Category.STANDARD);
172 assertEquals(Category.STANDARD, data.getIsStandard());
173 assertTrue(data.isStandard());
174 assertFalse(data.isCustom());
176 data.setIsStandard(Category.CUSTOM);
177 assertEquals(Category.CUSTOM, data.getIsStandard());
178 assertFalse(data.isStandard());
179 assertTrue(data.isCustom());
181 Identifier categoryIdentifier = new DummyIdentifier();
182 Category data2 = new Category(categoryIdentifier,
183 "urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject", Category.STANDARD);
184 assertEquals(DummyIdentifier.class.getName(), data2.getIdentifer().stringValue());
186 Category data3 = new Category(categoryIdentifier,
187 "urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject");
188 assertEquals(DummyIdentifier.class.getName(), data3.getIdentifer().stringValue());
190 assertEquals("subject",
191 Category.extractGrouping("urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject"));
192 assertNull(Category.extractGrouping(null));
193 assertNull(Category.extractGrouping("some random string"));
194 assertNull(Category.extractGrouping(""));
195 assertEquals("intermediary-attribute", Category
196 .extractGrouping("urn:oasis:names:tc:xacml:1.0:attribute-category:intermediary-attribute"));
200 public void testConstraintType() {
201 ConstraintType data = new ConstraintType();
202 new ConstraintType("Test", "Test");
203 ConstraintType.getRangeTypes();
204 data.setAttributes(new HashSet<>());
205 assertTrue(data.getAttributes() != null);
206 data.setConstraintType("Test");
207 assertTrue("Test".equals(data.getConstraintType()));
208 data.setDescription("Test");
209 assertTrue("Test".equals(data.getDescription()));
211 assertTrue(1 == data.getId());
215 public void testConstraintValue() {
216 ConstraintValue data = new ConstraintValue();
218 new ConstraintValue(new ConstraintValue());
219 new ConstraintValue("Test", "Test");
220 data.setAttribute(new Attribute());
221 assertTrue(data.getAttribute() != null);
223 assertTrue(1 == data.getId());
224 data.setProperty("Test");
225 assertTrue("Test".equals(data.getProperty()));
226 data.setValue("Test");
227 assertTrue("Test".equals(data.getValue()));
231 public void testObadvice() {
233 new Obadvice("Test", "Test");
234 new Obadvice(new DummyIdentifier(), "Test");
235 Obadvice data = new Obadvice();
237 data.addObadviceExpression(new ObadviceExpression());
238 assertNotNull(data.clone());
239 data.removeObadviceExpression(new ObadviceExpression());
240 data.removeAllExpressions();
241 assertEquals(0, data.getObadviceExpressions().size());
242 data.setObadviceExpressions(null);
243 assertNull(data.getObadviceExpressions());
244 data.removeAllExpressions();
248 assertTrue(1 == data.getId());
249 data.setCreatedBy("Test");
250 assertTrue("Test".equals(data.getCreatedBy()));
251 data.setDescription("Test");
252 assertTrue("Test".equals(data.getDescription()));
253 data.setFulfillOn("Test");
254 assertTrue("Test".equals(data.getFulfillOn()));
255 data.setModifiedBy("Test");
256 assertTrue("Test".equals(data.getModifiedBy()));
257 data.setObadviceExpressions(new HashSet<>());
258 assertTrue(data.getObadviceExpressions() != null);
259 data.setType("Test");
260 assertTrue("Test".equals(data.getType()));
261 data.setXacmlId("Test");
262 assertTrue("Test".equals(data.getXacmlId()));
267 public void testObadviceExpression() {
268 ObadviceExpression data = new ObadviceExpression();
270 data.setAttribute(new Attribute());
271 assertTrue(data.getAttribute() != null);
273 assertTrue(1 == data.getId());
274 data.setObadvice(new Obadvice());
275 assertTrue(data.getObadvice() != null);
276 data.setType("Test");
277 assertTrue("Test".equals(data.getType()));
281 public void testRuleAlgorithms() {
282 RuleAlgorithms data = new RuleAlgorithms();
286 assertTrue(1 == data.getId());
287 data.setShortName("Test");
288 assertTrue("Test".equals(data.getShortName()));
289 data.setXacmlId("Test");
290 assertTrue("Test".equals(data.getXacmlId()));
295 public void testAttributeAssignment() {
296 AttributeAssignment data = new AttributeAssignment();
298 assertTrue(1 == data.getId());
299 data.setAttributeId(1);
300 assertTrue(1 == data.getAttributeId());
301 data.setExpression("Test");
302 assertTrue("Test".equals(data.getExpression()));
306 public void testDatatype() {
307 Datatype data = new Datatype();
309 new Datatype(1, new Datatype());
310 data.setArguments(new HashSet<>());
311 assertTrue(data.getArguments() != null);
312 data.setAttributes(new HashSet<>());
313 assertTrue(data.getAttributes() != null);
314 data.setFunctions(new HashSet<>());
315 assertTrue(data.getFunctions() != null);
317 assertTrue(1 == data.getId());
318 data.setShortName("Test");
319 assertTrue("Test".equals(data.getShortName()));
320 data.setXacmlId("Test");
321 assertTrue("Test".equals(data.getXacmlId()));
322 data.addArgument(new FunctionArgument());
323 data.addAttribute(new Attribute());
324 data.addFunction(new FunctionDefinition());
325 data.removeArgument(new FunctionArgument());
326 data.removeAttribute(new Attribute());
327 data.removeAttribute(new FunctionDefinition());
328 assertTrue(data.getIdentifer() != null);
329 assertTrue(data.getIdentiferByShortName() != null);
330 data.setIsStandard(Datatype.STANDARD);
331 assertTrue(data.isStandard());
332 data.setIsStandard(Datatype.CUSTOM);
333 assertTrue(data.isCustom());
335 data.setIsStandard(Category.STANDARD);
336 assertEquals(Category.STANDARD, data.getIsStandard());
337 assertTrue(data.isStandard());
338 assertFalse(data.isCustom());
340 data.setIsStandard(Category.CUSTOM);
341 assertEquals(Category.CUSTOM, data.getIsStandard());
342 assertFalse(data.isStandard());
343 assertTrue(data.isCustom());
345 Datatype data2 = new Datatype(new DummyIdentifier(), Datatype.STANDARD);
346 assertEquals(DummyIdentifier.class.getName(), data2.getIdentifer().stringValue());
350 public void testPolicyAlgorithms() {
351 PolicyAlgorithms data = new PolicyAlgorithms();
353 assertTrue(1 == data.getId());
354 data.setShortName("Test");
355 assertTrue("Test".equals(data.getShortName()));
356 data.setXacmlId("Test");
357 assertTrue("Test".equals(data.getXacmlId()));
358 data.setIsStandard(PolicyAlgorithms.STANDARD);
359 assertTrue(data.isStandard());
360 assertFalse(data.isCustom());
361 data.setIsStandard(PolicyAlgorithms.CUSTOM);
362 assertFalse(data.isStandard());
363 assertTrue(data.isCustom());
365 DummyIdentifier identifier = new DummyIdentifier();
366 assertNotNull(new PolicyAlgorithms(identifier));
367 assertNotNull(new PolicyAlgorithms(identifier, 'C'));