diff options
author | uj426b <30905205+uj426b@users.noreply.github.com> | 2019-03-28 18:40:54 -0400 |
---|---|---|
committer | uj426b <uj426b@att.com> | 2019-04-08 17:37:49 -0400 |
commit | 06e02108525c3e5e8c85de233aef3bb332173c00 (patch) | |
tree | 87554edd057f73a0fd7674d9a4a3c5f27f02b276 /ONAP-REST/src/test | |
parent | 6da5838f43a4bf0dc8786c539f9a9aa521139e55 (diff) |
CLAMP Model policy creation support
Change-Id: Ia69f061c078e4f6ed4b4d2cd12f03f58514f2123
Issue-ID: POLICY-1416
Signed-off-by: uj426b <uj426b@att.com>
Diffstat (limited to 'ONAP-REST/src/test')
5 files changed, 221 insertions, 124 deletions
diff --git a/ONAP-REST/src/test/java/org/onap/policy/rest/jpa/DictionaryDataTest.java b/ONAP-REST/src/test/java/org/onap/policy/rest/jpa/DictionaryDataTest.java new file mode 100644 index 000000000..486d36442 --- /dev/null +++ b/ONAP-REST/src/test/java/org/onap/policy/rest/jpa/DictionaryDataTest.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Engine + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.rest.jpa; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +public class DictionaryDataTest { + + @Test + public void test() { + DictionaryData dictData; + dictData = new DictionaryData(); + String value = "testData1"; + + // Set Data + dictData.setId(1);; + dictData.setDictionaryDataByName(value); + dictData.setDictionaryName(value); + dictData.setDictionaryUrl(value); + + // Test gets + assertEquals(1, dictData.getId()); + assertEquals(value, dictData.getDictionaryDataByName()); + assertEquals(value, dictData.getDictionaryName()); + assertEquals(value, dictData.getDictionaryUrl()); + } + +} diff --git a/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSAttributeObjectTest.java b/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSAttributeObjectTest.java index 1064b240d..a39eb4996 100644 --- a/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSAttributeObjectTest.java +++ b/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSAttributeObjectTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP-REST * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,47 +17,50 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.rest.util; import static org.junit.Assert.assertTrue; - import java.util.HashMap; - import org.junit.Test; public class MSAttributeObjectTest { @Test - public void testMSAttributeObject(){ + public void testMSAttributeObject() { MSAttributeObject data = new MSAttributeObject(); data.setClassName("Test"); assertTrue("Test".equals(data.getClassName())); data.setRefAttribute(new HashMap<>()); - assertTrue(data.getRefAttribute()!=null); + assertTrue(data.getRefAttribute() != null); data.setAttribute(new HashMap<>()); - assertTrue(data.getAttribute()!=null); + assertTrue(data.getAttribute() != null); data.setEnumType(new HashMap<>()); - assertTrue(data.getEnumType()!=null); + assertTrue(data.getEnumType() != null); data.addAttribute("test", "test"); data.addRefAttribute("test", "test"); data.addAllAttribute(new HashMap<>()); data.addAllRefAttribute(new HashMap<>()); data.setSubClass(new HashMap<>()); - assertTrue(data.getSubClass()!=null); + assertTrue(data.getSubClass() != null); data.addAllSubClass(new HashMap<>()); data.setDependency("Test"); assertTrue("Test".equals(data.getDependency())); data.addSingleEnum("test", "test"); data.setMatchingSet(new HashMap<>()); - assertTrue(data.getMatchingSet()!=null); + assertTrue(data.getMatchingSet() != null); data.addMatchingSet("test", "test"); data.addMatchingSet(new HashMap<>()); data.setPolicyTempalate(true); assertTrue(data.isPolicyTempalate()); + data.setRuleFormation("ruleFormation"); + assertTrue(data.getRuleFormation() != null); + data.setDataOrderInfo("dataOrderInfo"); + assertTrue(data.getDataOrderInfo() != null); } @Test - public void testMSAttributeValue(){ + public void testMSAttributeValue() { MSAttributeValue data = new MSAttributeValue(); data.setName("Test"); assertTrue("Test".equals(data.getName())); diff --git a/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSModelUtilsTest.java b/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSModelUtilsTest.java index e06103fcb..34d555062 100644 --- a/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSModelUtilsTest.java +++ b/ONAP-REST/src/test/java/org/onap/policy/rest/util/MSModelUtilsTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP-REST * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,10 +17,14 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -package org.onap.policy.rest.util; -import static org.junit.Assert.*; +package org.onap.policy.rest.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -28,25 +32,44 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.apache.commons.lang.StringUtils; +import org.junit.Before; import org.junit.Test; import org.onap.policy.common.logging.flexlogger.FlexLogger; import org.onap.policy.common.logging.flexlogger.Logger; +import org.onap.policy.rest.dao.CommonClassDao; +import org.onap.policy.rest.jpa.DictionaryData; import org.onap.policy.rest.util.MSModelUtils.MODEL_TYPE; public class MSModelUtilsTest { private static Logger logger = FlexLogger.getLogger(MSModelUtilsTest.class); + private static CommonClassDao commonClassDao; + + @Before + public void setUp() throws Exception { + List<Object> dictionaryData = new ArrayList<Object>(); + DictionaryData testData = new DictionaryData(); + testData.setDictionaryName("dictionaryName"); + testData.setDictionaryDataByName("dictionaryDataByName"); + dictionaryData.add(testData); + logger.info("setUp: Entering"); + commonClassDao = mock(CommonClassDao.class); + when(commonClassDao.getDataById(DictionaryData.class, "dictionaryName", "GocVNFType")) + .thenReturn(dictionaryData); + } + @Test - public void testMSModelUtils(){ + public void testMSModelUtils() { HashMap<String, MSAttributeObject> classMap = new HashMap<>(); ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("DKaTVESPolicy-v1802.xmi").getFile()); MSModelUtils utils = new MSModelUtils("http://org.onap", "http://org.onap.policy"); - Map<String, MSAttributeObject> tempMap = utils.processEpackage(file.getAbsolutePath().toString(), MODEL_TYPE.XMI); + Map<String, MSAttributeObject> tempMap = + utils.processEpackage(file.getAbsolutePath().toString(), MODEL_TYPE.XMI); classMap.putAll(tempMap); MSAttributeObject mainClass = classMap.get("StandardDeviationThreshold"); - String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[]{"[", "]", " "}, new String[]{"", "", ""}); + String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[] {"[", "]", " "}, + new String[] {"", "", ""}); List<String> dependency = new ArrayList<String>(Arrays.asList(dependTemp.split(","))); dependency = utils.getFullDependencyList(dependency, classMap); String subAttribute = utils.createSubAttributes(dependency, classMap, "StandardDeviationThreshold"); @@ -55,25 +78,25 @@ public class MSModelUtilsTest { /** - * Run the void stringBetweenDots(String, String) method test + * Run the void stringBetweenDots(String, String) method test. */ - @Test + @Test public void testStringBetweenDots() { - //expect: uniqueKeys should contain a string value - MSModelUtils controllerA = new MSModelUtils(); + // expect: uniqueKeys should contain a string value + MSModelUtils controllerA = new MSModelUtils(); String str = "testing\\.byCorrectWay\\.OfDATA"; assertEquals(1, controllerA.stringBetweenDots(str)); - //expect: uniqueKeys should not contain a string value + // expect: uniqueKeys should not contain a string value str = "testing\byWrongtWay.\\OfDATA"; MSModelUtils controllerB = new MSModelUtils(); assertEquals(0, controllerB.stringBetweenDots(str)); } /** - * Run the Map<String,String> load(String) method test + * Run the Map<String,String> load(String) method test. */ @Test @@ -82,20 +105,20 @@ public class MSModelUtilsTest { boolean isLocalTesting = true; MSModelUtils controller = new MSModelUtils(); String fileName = null; - Map<String,String> result = null; + Map<String, String> result = null; try { ClassLoader classLoader = getClass().getClassLoader(); - fileName = new File(classLoader.getResource("policy_tosca_tca-v1707.yml").getFile()).getAbsolutePath(); + fileName = new File(classLoader.getResource("TESTMODEL-v1806.yml").getFile()).getAbsolutePath(); } catch (Exception e1) { - logger.error("Exception Occured while loading file"+e1); + logger.error("Exception Occured while loading file" + e1); } - if(isLocalTesting){ + if (isLocalTesting) { try { result = controller.load(fileName); } catch (IOException e) { logger.error("testLoad", e); result = null; - }catch(ParserException e){ + } catch (ParserException e) { logger.error("testLoad", e); } @@ -107,7 +130,7 @@ public class MSModelUtilsTest { } /** - * Run the void parseTosca(String) method test + * Run the void parseTosca(String) method test. */ @Test @@ -118,20 +141,20 @@ public class MSModelUtilsTest { String fileName = null; try { ClassLoader classLoader = getClass().getClassLoader(); - fileName = new File(classLoader.getResource("policy_tosca_tca-v1707.yml").getFile()).getAbsolutePath(); + fileName = new File(classLoader.getResource("TESTMODEL-v1806.yml").getFile()).getAbsolutePath(); } catch (Exception e1) { - logger.error("Exception Occured while loading file"+e1); + logger.error("Exception Occured while loading file" + e1); } - MSModelUtils controller = new MSModelUtils(); - if(isLocalTesting){ + MSModelUtils controller = new MSModelUtils(commonClassDao); + if (isLocalTesting) { try { controller.parseTosca(fileName); - }catch (Exception e) { + } catch (Exception e) { fail("parseTosca caused error: " + e); } } logger.debug("testParseTosca: exit"); } -}
\ No newline at end of file +} diff --git a/ONAP-REST/src/test/resources/TESTMODEL-v1806.yml b/ONAP-REST/src/test/resources/TESTMODEL-v1806.yml new file mode 100644 index 000000000..8f35e6fc1 --- /dev/null +++ b/ONAP-REST/src/test/resources/TESTMODEL-v1806.yml @@ -0,0 +1,107 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 + +node_types: + + # policy root node + policy.nodes.Root: + derived_from: tosca.nodes.Root + properties: + policyName: + type: string + required: true + policyVersion: + type: string + required: true + policyScope: + type: string + required: true + policyDescription: + type: string + required: false + + # virtual policy node for naming + policy.nodes.naming-model: + derived_from: policy.nodes.Root + properties: + Correlation Priority: + type: string + required: true + Correlation Window: + type: String + required: true + Email Notification for failures: + type: String + required: true + Select Server Scope: # Need Dictionary + type: String + required: true + Parent Correlation Name: + type: String + required: true + Parent Correlation Traversal: # Need Dictionary + type: String + required: true + triggerSignature: + type: list + required: true + entry_schema: + - type:policy.data.resource-model-entity + logicalConnector: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: ["OR", "AND"] +data_types: + # custom data type + policy.data.resource-model-entity: + derived_from: tosca.nodes.Root + properties: + signatures: + type: policy.data.element + required: false + + policy.data.element: + derived_from: tosca.nodes.Root + properties: + alarmSignatures: + type: list + required: true + entry_schema: + type: policy.data.range + + policy.data.range: + derived_from: tosca.nodes.Root + properties: + traversal: + type: string + required: true + alarmSignature: + type: list + required: true + entry_schema: + type: policy.data.alarms + + policy.data.alarms: + derived_from: tosca.nodes.Root + properties: + VnfType: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: ["dictionary:GocVNFType#Rules"] + Contains: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: ["OR", "AND", "CONTAINS", "EQUALS", "NOTEQUALS", "ENDSWITH", "STARTSWITH"] + FilterValue: + type: string + required: true + +JSON_MODEL: signatures.alarmSignatures.alarmSignature
\ No newline at end of file diff --git a/ONAP-REST/src/test/resources/policy_tosca_tca-v1707.yml b/ONAP-REST/src/test/resources/policy_tosca_tca-v1707.yml deleted file mode 100644 index b29ebcfa9..000000000 --- a/ONAP-REST/src/test/resources/policy_tosca_tca-v1707.yml +++ /dev/null @@ -1,85 +0,0 @@ -# -#============LICENSE_START================================================== -# ONAP Policy Engine -#=========================================================================== -# Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. -#=========================================================================== -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#============LICENSE_END================================================== -# - -tosca_definitions_version: tosca_simple_yaml_1_0_0 - -node_types: - # policy root node - policy.nodes.Root: - derived_from: tosca.nodes.Root - properties: - policyName: - type: string - required: true - policyVersion: - type: string - required: true - policyScope: - type: string - required: true - policyDescription: - type: string - required: false - - # virtual policy node for string matcher - policy.nodes.tca: - derived_from: policy.nodes.Root - properties: - functionalRole: - type: string - required: true - default: "ClosedLoop_F5-d925ed73-8231-4d02-9545-db4e101f88f8" - policyName: - type: string - required: true - default: "configuration.dcae.microservice.tca.xml" - policyVersion: - type: string - required: true - default: "v0.0.1" - threshholds: - type: list - entry_schema: - - type:policy.data.Threshold - -data_types: - policy.data.Threshold: - derived_from: tosca.nodes.Root - properties: - closedLoopControlName: - type: string - required: true - version: - type: string - required: true - default: "1.0.2" - fieldPath: - type: string - required: true - thresholdValue: - type: integer - required: true - direction: - type: string - required: true - severity: - type: string - required: true - |