added test case to TestPropertyDefinitionNode.java
[appc.git] / appc-config / appc-config-params / provider / src / test / java / org / onap / sdnc / config / params / parser / TestPropertyDefinitionNode.java
index a4ac832..6a9fe55 100644 (file)
@@ -6,6 +6,8 @@
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
+ * Modifications Copyright (C) 2018 IBM
+ * =============================================================================
  * 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
 
 package org.onap.sdnc.config.params.parser;
 
-
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
 import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.Map;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
-import org.junit.Ignore;
+import org.junit.Before;
 import org.junit.Test;
 import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.onap.sdnc.config.params.ParamsHandlerConstant;
 import org.onap.sdnc.config.params.data.PropertyDefinition;
 import org.onap.sdnc.config.params.transformer.ArtificatTransformer;
 
 public class TestPropertyDefinitionNode {
+    private PropertyDefinitionNode propertyDefinitionNode;
+
+    @Before
+    public void setup() {
+        propertyDefinitionNode = new PropertyDefinitionNode();
+    }
 
-    @Ignore
+    @Test
     public void testProcessMissingParamKeys() throws Exception {
         PropertyDefinitionNode propertyDefinitionNode = new PropertyDefinitionNode();
         Map<String, String> inParams = new HashMap<String, String>();
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
 
-        String yamlData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/pd.yaml"), Charset.defaultCharset());
+        String yamlData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/pd.yaml"),
+                Charset.defaultCharset());
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_PD_CONTENT, yamlData);
 
-        String jsonData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/request-param.json"), Charset.defaultCharset());
+        String jsonData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/request-param.json"),
+                Charset.defaultCharset());
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_JSON_DATA, jsonData);
 
         SvcLogicContext ctx = new SvcLogicContext();
@@ -62,18 +74,34 @@ public class TestPropertyDefinitionNode {
 
     }
 
+    @Test(expected = SvcLogicException.class)
+    public void testInProcessMissingParamKeysForEmptyPdContent() throws Exception {
+        PropertyDefinitionNode propertyDefinitionNode = new PropertyDefinitionNode();
+        Map<String, String> inParams = new HashMap<String, String>();
+        inParams.put(ParamsHandlerConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+        String jsonData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/request-param.json"),
+                Charset.defaultCharset());
+        inParams.put(ParamsHandlerConstant.INPUT_PARAM_JSON_DATA, jsonData);
+
+        SvcLogicContext ctx = new SvcLogicContext();
+        propertyDefinitionNode.processMissingParamKeys(inParams, ctx);
+    }
+
     @Test
     public void testProcessExternalSystemParamKeys() throws Exception {
         PropertyDefinitionNode propertyDefinitionNode = new PropertyDefinitionNode();
         Map<String, String> inParams = new HashMap<String, String>();
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
 
-        String yamlData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/pd.yaml"), Charset.defaultCharset());
+        String yamlData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/pd.yaml"),
+                Charset.defaultCharset());
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_PD_CONTENT, yamlData);
 
-        String jsonData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/request-param.json"), Charset.defaultCharset());
+        String jsonData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/request-param.json"),
+                Charset.defaultCharset());
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_JSON_DATA, jsonData);
 
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_SYSTEM_NAME, "SOURCE");
@@ -92,53 +120,100 @@ public class TestPropertyDefinitionNode {
                 ParamsHandlerConstant.OUTPUT_STATUS_SUCCESS);
     }
 
+    @Test(expected = SvcLogicException.class)
+    public void testProcessExternalSystemParamKeysForEmptyPdContent() throws Exception {
+
+        Map<String, String> inParams = new HashMap<String, String>();
+        inParams.put(ParamsHandlerConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+        inParams.put(ParamsHandlerConstant.INPUT_PARAM_SYSTEM_NAME, "SOURCE");
+        SvcLogicContext ctx = new SvcLogicContext();
+        propertyDefinitionNode.processExternalSystemParamKeys(inParams, ctx);
+    }
+
     @Test
     public void mergeJsonData() throws Exception {
         PropertyDefinitionNode propertyDefinitionNode = new PropertyDefinitionNode();
         Map<String, String> inParams = new HashMap<String, String>();
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
 
-        String jsonData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/request-param.json"), Charset.defaultCharset());
+        String jsonData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/request-param.json"),
+                Charset.defaultCharset());
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_JSON_DATA, jsonData);
 
-        String mergeJsonData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/merge-param.json"), Charset.defaultCharset());
+        String mergeJsonData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/merge-param.json"),
+                Charset.defaultCharset());
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_MERGE__JSON_DATA, mergeJsonData);
 
         SvcLogicContext ctx = new SvcLogicContext();
         propertyDefinitionNode.mergeJsonData(inParams, ctx);
-        String mergedParams = ctx
-                .getAttribute("test." + ParamsHandlerConstant.OUTPUT_PARAM_CONFIGURATION_PARAMETER);
+        String mergedParams = ctx.getAttribute("test." + ParamsHandlerConstant.OUTPUT_PARAM_CONFIGURATION_PARAMETER);
         assertNotNull(mergedParams);
         assertEquals(ctx.getAttribute("test." + ParamsHandlerConstant.OUTPUT_PARAM_STATUS),
                 ParamsHandlerConstant.OUTPUT_STATUS_SUCCESS);
     }
 
+    @Test
+    public void mergeJsonDataForEmptyParams() throws SvcLogicException, IOException {
+
+        PropertyDefinitionNode propertyDefinitionNode = new PropertyDefinitionNode();
+        Map<String, String> inParams = new HashMap<String, String>();
+        inParams.put(ParamsHandlerConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+        String mergeJsonData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/merge-param.json"),
+                Charset.defaultCharset());
+        inParams.put(ParamsHandlerConstant.INPUT_PARAM_MERGE__JSON_DATA, mergeJsonData);
+        SvcLogicContext ctx = new SvcLogicContext();
+        propertyDefinitionNode.mergeJsonData(inParams, ctx);
+        String status = ctx.getAttribute("test.status");
+        assertEquals(ParamsHandlerConstant.OUTPUT_STATUS_SUCCESS, status);
+
+    }
+
+    @Test(expected = SvcLogicException.class)
+    public void testMergeJsonDataCatchPortion() throws Exception {
+        Map<String, String> inParams = new HashMap<String, String>();
+        inParams.put(ParamsHandlerConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+        SvcLogicContext ctx = new SvcLogicContext();
+        propertyDefinitionNode.mergeJsonData(inParams, ctx);
+    }
+
     @Test
     public void testArtificatTransformer() throws Exception {
         ArtificatTransformer transformer = new ArtificatTransformer();
-        String yamlData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/pd.yaml"), Charset.defaultCharset());
+        String yamlData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/pd.yaml"),
+                Charset.defaultCharset());
 
         PropertyDefinition propertyDefinition = transformer.convertYAMLToPD(yamlData);
         String yaml = transformer.convertPDToYaml(propertyDefinition);
     }
 
-
     @Test
     public void testValidationPd() throws Exception {
         PropertyDefinitionNode propertyDefinitionNode = new PropertyDefinitionNode();
         Map<String, String> inParams = new HashMap<String, String>();
         SvcLogicContext ctx = new SvcLogicContext();
-        String jsonData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/pd.yaml"), Charset.defaultCharset());
-        String mergeJsonData = IOUtils.toString(TestPropertyDefinitionNode.class.getClassLoader()
-                .getResourceAsStream("parser/request-param.json"), Charset.defaultCharset());
+        String jsonData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/pd.yaml"),
+                Charset.defaultCharset());
+        String mergeJsonData = IOUtils.toString(
+                TestPropertyDefinitionNode.class.getClassLoader().getResourceAsStream("parser/request-param.json"),
+                Charset.defaultCharset());
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_PD_CONTENT, jsonData);
         inParams.put(ParamsHandlerConstant.OUTPUT_PARAM_CONFIGURATION_PARAMETER, mergeJsonData);
         inParams.put(ParamsHandlerConstant.INPUT_PARAM_SYSTEM_NAME, "INSTAR");
         propertyDefinitionNode.validateParams(inParams, ctx);
     }
+    
+    @Test(expected=SvcLogicException.class)
+    public void testValidateParamsForEmptyParams() throws Exception
+    {
+        PropertyDefinitionNode propertyDefinitionNode = new PropertyDefinitionNode();
+        Map<String, String> inParams = new HashMap<String, String>();
+        SvcLogicContext ctx = new SvcLogicContext();
+        propertyDefinitionNode.validateParams(inParams, ctx);
+    }
 
 }