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.assertNull;
27 import static org.junit.Assert.assertTrue;
29 import com.att.research.xacml.api.Identifier;
31 import java.util.ArrayList;
32 import java.util.Date;
33 import java.util.HashSet;
35 import org.junit.Before;
36 import org.junit.Test;
37 import org.onap.policy.common.logging.flexlogger.FlexLogger;
38 import org.onap.policy.common.logging.flexlogger.Logger;
40 public class ActionDictionaryJpaTest {
42 private static Logger logger = FlexLogger.getLogger(ActionDictionaryJpaTest.class);
43 private UserInfo userInfo;
48 * @throws Exception on test errors
51 public void setUp() throws Exception {
52 logger.info("setUp: Entering");
53 userInfo = new UserInfo();
54 userInfo.setUserLoginId("Test");
55 userInfo.setUserName("Test");
56 logger.info("setUp: exit");
60 public void testActionDictionary() {
61 ActionPolicyDict data = new ActionPolicyDict();
63 assertTrue(1 == data.getId());
64 data.setAttributeName("Test");
65 assertTrue("Test".equals(data.getAttributeName()));
66 data.setDescription("Test");
67 assertTrue("Test".equals(data.getDescription()));
69 assertTrue("Test".equals(data.getBody()));
70 data.setHeader("Test");
71 assertTrue("Test".equals(data.getHeader()));
72 data.setMethod("GET");
73 assertTrue("GET".equals(data.getMethod()));
75 assertTrue("JSON".equals(data.getType()));
76 data.setUrl("http://test.com");
77 assertTrue("http://test.com".equals(data.getUrl()));
80 data.setCreatedDate(new Date());
81 assertTrue(data.getCreatedDate() != null);
82 data.setModifiedDate(new Date());
83 assertTrue(data.getModifiedDate() != null);
84 data.setUserCreatedBy(userInfo);
85 assertTrue(data.getUserCreatedBy() != null);
86 data.setUserModifiedBy(userInfo);
87 assertTrue(data.getUserModifiedBy() != null);
91 public void testFunctionArgument() {
92 FunctionArgument data = new FunctionArgument();
94 assertTrue(1 == data.getArgIndex());
95 data.setDatatypeBean(new Datatype());
96 assertTrue(data.getDatatypeBean() != null);
97 data.setFunctionDefinition(new FunctionDefinition());
98 assertTrue(data.getFunctionDefinition() != null);
100 assertTrue(1 == data.getId());
101 assertFalse(data.isBag());
102 assertEquals("FunctionArgument(id=1", data.toString().substring(0, 21));
104 assertTrue(data.isBag());
105 assertTrue(1 == data.getIsBag());
106 new FunctionArgument(data);
110 public void testFunctionDefinition() {
111 FunctionDefinition data = new FunctionDefinition();
113 assertTrue(1 == data.getArgLb());
115 assertTrue(1 == data.getArgUb());
116 data.setDatatypeBean(new Datatype());
117 assertTrue(data.getDatatypeBean() != null);
118 data.setFunctionArguments(new ArrayList<>());
119 assertTrue(data.getFunctionArguments() != null);
120 data.setHigherOrderArgLb(1);
121 assertTrue(1 == data.getHigherOrderArgLb());
122 data.setHigherOrderArgUb(1);
123 assertTrue(1 == data.getHigherOrderArgUb());
125 assertTrue(1 == data.getId());
126 data.setIsBagReturn(1);
127 assertTrue(1 == data.getIsBagReturn());
128 data.setIsHigherOrder(1);
129 assertTrue(1 == data.getIsHigherOrder());
130 data.setShortname("Test");
131 assertTrue("Test".equals(data.getShortname()));
132 data.setXacmlid("Test");
133 assertTrue("Test".equals(data.getXacmlid()));
134 assertTrue(data.toString().startsWith("FunctionDefinition(id=1"));
135 assertTrue(data.isBagReturn());
136 data.setIsBagReturn(0);
137 assertTrue(data.isHigherOrder());
138 assertFalse(data.isBagReturn());
139 data.setIsHigherOrder(0);
140 assertFalse(data.isHigherOrder());
141 FunctionArgument functionArgument = new FunctionArgument();
142 functionArgument.setId(12345);
143 data.addFunctionArgument(functionArgument);
144 assertEquals(12345, data.getFunctionArguments().iterator().next().getId());
145 data.removeFunctionArgument(functionArgument);
146 assertTrue(data.getFunctionArguments().isEmpty());
150 public void testCategory() {
151 Category data = new Category();
153 data.setAttributes(new HashSet<>());
154 data.addAttribute(new Attribute());
155 data.removeAttribute(new Attribute());
160 assertTrue(data.getAttributes() != null);
161 data.setGrouping("Test");
162 assertTrue("Test".equals(data.getGrouping()));
164 assertTrue(1 == data.getId());
165 data.setShortName("Test");
166 assertTrue("Test".equals(data.getShortName()));
167 data.setXacmlId("Test");
168 assertTrue("Test".equals(data.getXacmlId()));
170 data.setIsStandard(Category.STANDARD);
171 assertEquals(Category.STANDARD, data.getIsStandard());
172 assertTrue(data.isStandard());
173 assertFalse(data.isCustom());
175 data.setIsStandard(Category.CUSTOM);
176 assertEquals(Category.CUSTOM, data.getIsStandard());
177 assertFalse(data.isStandard());
178 assertTrue(data.isCustom());
180 Identifier categoryIdentifier = new DummyIdentifier();
181 Category data2 = new Category(categoryIdentifier,
182 "urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject", Category.STANDARD);
183 assertEquals(DummyIdentifier.class.getName(), data2.getIdentifer().stringValue());
185 Category data3 = new Category(categoryIdentifier,
186 "urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject");
187 assertEquals(DummyIdentifier.class.getName(), data3.getIdentifer().stringValue());
189 assertEquals("subject",
190 Category.extractGrouping("urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject"));
191 assertNull(Category.extractGrouping(null));
192 assertNull(Category.extractGrouping("some random string"));
193 assertNull(Category.extractGrouping(""));
194 assertEquals("intermediary-attribute", Category
195 .extractGrouping("urn:oasis:names:tc:xacml:1.0:attribute-category:intermediary-attribute"));
199 public void testConstraintType() {
200 ConstraintType data = new ConstraintType();
201 new ConstraintType("Test", "Test");
202 ConstraintType.getRangeTypes();
203 data.setAttributes(new HashSet<>());
204 assertTrue(data.getAttributes() != null);
205 data.setConstraintType("Test");
206 assertTrue("Test".equals(data.getConstraintType()));
207 data.setDescription("Test");
208 assertTrue("Test".equals(data.getDescription()));
210 assertTrue(1 == data.getId());
214 public void testConstraintValue() {
215 ConstraintValue data = new ConstraintValue();
217 new ConstraintValue(new ConstraintValue());
218 new ConstraintValue("Test", "Test");
219 data.setAttribute(new Attribute());
220 assertTrue(data.getAttribute() != null);
222 assertTrue(1 == data.getId());
223 data.setProperty("Test");
224 assertTrue("Test".equals(data.getProperty()));
225 data.setValue("Test");
226 assertTrue("Test".equals(data.getValue()));
230 public void testObadvice() {
231 Obadvice data = new Obadvice();
233 new Obadvice("Test", "Test");
235 data.addObadviceExpression(new ObadviceExpression());
236 data.removeObadviceExpression(new ObadviceExpression());
237 data.removeAllExpressions();
241 assertTrue(1 == data.getId());
242 data.setCreatedBy("Test");
243 assertTrue("Test".equals(data.getCreatedBy()));
244 data.setDescription("Test");
245 assertTrue("Test".equals(data.getDescription()));
246 data.setFulfillOn("Test");
247 assertTrue("Test".equals(data.getFulfillOn()));
248 data.setModifiedBy("Test");
249 assertTrue("Test".equals(data.getModifiedBy()));
250 data.setObadviceExpressions(new HashSet<>());
251 assertTrue(data.getObadviceExpressions() != null);
252 data.setType("Test");
253 assertTrue("Test".equals(data.getType()));
254 data.setXacmlId("Test");
255 assertTrue("Test".equals(data.getXacmlId()));
259 public void testObadviceExpression() {
260 ObadviceExpression data = new ObadviceExpression();
262 data.setAttribute(new Attribute());
263 assertTrue(data.getAttribute() != null);
265 assertTrue(1 == data.getId());
266 data.setObadvice(new Obadvice());
267 assertTrue(data.getObadvice() != null);
268 data.setType("Test");
269 assertTrue("Test".equals(data.getType()));
273 public void testRuleAlgorithms() {
274 RuleAlgorithms data = new RuleAlgorithms();
278 assertTrue(1 == data.getId());
279 data.setShortName("Test");
280 assertTrue("Test".equals(data.getShortName()));
281 data.setXacmlId("Test");
282 assertTrue("Test".equals(data.getXacmlId()));
287 public void testAttributeAssignment() {
288 AttributeAssignment data = new AttributeAssignment();
290 assertTrue(1 == data.getId());
291 data.setAttributeId(1);
292 assertTrue(1 == data.getAttributeId());
293 data.setExpression("Test");
294 assertTrue("Test".equals(data.getExpression()));
298 public void testDatatype() {
299 Datatype data = new Datatype();
301 new Datatype(1, new Datatype());
302 data.setArguments(new HashSet<>());
303 assertTrue(data.getArguments() != null);
304 data.setAttributes(new HashSet<>());
305 assertTrue(data.getAttributes() != null);
306 data.setFunctions(new HashSet<>());
307 assertTrue(data.getFunctions() != null);
309 assertTrue(1 == data.getId());
310 data.setShortName("Test");
311 assertTrue("Test".equals(data.getShortName()));
312 data.setXacmlId("Test");
313 assertTrue("Test".equals(data.getXacmlId()));
314 data.addArgument(new FunctionArgument());
315 data.addAttribute(new Attribute());
316 data.addFunction(new FunctionDefinition());
317 data.removeArgument(new FunctionArgument());
318 data.removeAttribute(new Attribute());
319 data.removeAttribute(new FunctionDefinition());
320 assertTrue(data.getIdentifer() != null);
321 assertTrue(data.getIdentiferByShortName() != null);
322 data.setIsStandard(Datatype.STANDARD);
323 assertTrue(data.isStandard());
324 data.setIsStandard(Datatype.CUSTOM);
325 assertTrue(data.isCustom());
327 data.setIsStandard(Category.STANDARD);
328 assertEquals(Category.STANDARD, data.getIsStandard());
329 assertTrue(data.isStandard());
330 assertFalse(data.isCustom());
332 data.setIsStandard(Category.CUSTOM);
333 assertEquals(Category.CUSTOM, data.getIsStandard());
334 assertFalse(data.isStandard());
335 assertTrue(data.isCustom());
337 Datatype data2 = new Datatype(new DummyIdentifier(), Datatype.STANDARD);
338 assertEquals(DummyIdentifier.class.getName(), data2.getIdentifer().stringValue());
342 public void testPolicyAlgorithms() {
343 PolicyAlgorithms data = new PolicyAlgorithms();
345 assertTrue(1 == data.getId());
346 data.setShortName("Test");
347 assertTrue("Test".equals(data.getShortName()));
348 data.setXacmlId("Test");
349 assertTrue("Test".equals(data.getXacmlId()));
350 data.setIsStandard(PolicyAlgorithms.STANDARD);
351 assertTrue(data.isStandard());