summaryrefslogtreecommitdiffstats
path: root/appc-config/appc-config-generator/provider/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'appc-config/appc-config-generator/provider/src/test')
-rw-r--r--appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/convert/TestConvertNode.java149
-rw-r--r--appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/merge/TestMergeNode.java98
-rw-r--r--appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/pattern/TestPatternNode.java111
-rw-r--r--appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/transform/TestXSLTTransformerNode.java60
-rw-r--r--appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/writer/TestFileWriterNode.java55
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_msc.txt0
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_ssc.txt0
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_vdbe.xml19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/convert/payload_cli_config.json19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/convert/payload_json_config.json19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/convert/payload_parameters_config.json19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/convert/payload_template_config.json19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/convert/payload_xml_config.json19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/merge/complex/vdbe_data.json19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/merge/complex/vdbe_template.xml19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/merge/vdbe_data.json19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/merge/vdbe_template.xml19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/pattern/errorlog.txt0
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/pattern/json_data.json19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/pattern/text_data.txt1
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/pattern/xml_data.xml19
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/transform/request.xml31
-rw-r--r--appc-config/appc-config-generator/provider/src/test/resources/transform/template.xsl64
23 files changed, 797 insertions, 0 deletions
diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/convert/TestConvertNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/convert/TestConvertNode.java
new file mode 100644
index 000000000..985f295cc
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/convert/TestConvertNode.java
@@ -0,0 +1,149 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.sdnc.config.generator.convert;
+
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
+import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant;
+import org.openecomp.sdnc.config.generator.convert.ConvertNode;
+import org.openecomp.sdnc.config.generator.merge.TestMergeNode;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import org.openecomp.sdnc.sli.SvcLogicContext;
+import org.openecomp.sdnc.sli.SvcLogicException;
+
+public class TestConvertNode {
+ private static final EELFLogger log = EELFManager.getInstance().getLogger(TestConvertNode.class);
+
+// @Test
+ public void testPayloadParametersConfig() throws Exception {
+ SvcLogicContext ctx = new SvcLogicContext();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N");
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, "configuration-parameters,configuration.configuration-json,configuration.configuration-string");
+ convertJson2Context("convert/payload_parameters_config.json", inParams, ctx);
+ log.info("testPayloadParametersConfig Result: " + ctx.getAttribute("block_configuration-parameters"));
+
+ }
+
+//@Test
+ public void testPayloadCliConfig() throws Exception {
+ SvcLogicContext ctx = new SvcLogicContext();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N");
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, "configuration-parameters,configuration.configuration-json,configuration.configuration-string");
+ convertJson2Context("convert/payload_cli_config.json", inParams, ctx);
+
+ log.info("testPayloadCliConfig Result: " + ctx.getAttribute("block_configuration-parameters"));
+ log.info("testPayloadCliConfig Result: " + ctx.getAttribute("block_configuration.configuration-string"));
+ }
+
+ //@Test
+ public void testPayloadXMLConfig() throws Exception {
+ SvcLogicContext ctx = new SvcLogicContext();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N");
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, "configuration-parameters,configuration.configuration-json,configuration.configuration-string");
+ convertJson2Context("convert/payload_xml_config.json", inParams, ctx);
+
+ log.info("testPayloadXMLConfig Result: " + ctx.getAttribute("block_configuration-parameters"));
+ log.info("testPayloadXMLConfig Result: " + ctx.getAttribute("block_configuration.configuration-string"));
+ }
+ //@Test
+ public void testPayloadJsonConfig() throws Exception {
+ SvcLogicContext ctx = new SvcLogicContext();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N");
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, "configuration-parameters,configuration.configuration-json,configuration.configuration-string");
+ convertJson2Context("convert/payload_json_config.json", inParams, ctx);
+ log.info("testPayloadJsonConfig Result: " + ctx.getAttribute("block_configuration-parameters"));
+ log.info("testPayloadJsonConfig Result: " + ctx.getAttribute("block_configuration.configuration-json"));
+ }
+ //@Test
+ private void convertJson2Context(String jsonFile, Map<String, String> inParams, SvcLogicContext ctx) throws IOException, SvcLogicException {
+ ConvertNode convertNode = new ConvertNode();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+ String jsonData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream(jsonFile));
+ log.info("TestConvertNode.testConvertJson2DGContext()" + jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData);
+ convertNode.convertJson2DGContext(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+ }
+
+// @Test
+ public void testEscapeData() throws Exception {
+ SvcLogicContext ctx = new SvcLogicContext();
+ Map<String, String> inParams = new HashMap<String, String>();
+ //String unescapeData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("convert/escape/config_msc.txt"));
+ String unescapeData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("convert/escape/config_ssc.txt"));
+ //String unescapeData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("convert/escape/config_vdbe.xml"));
+ log.info("TestConvertNode.testEscapeData() unescapeData :"+unescapeData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA, unescapeData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE, ConfigGeneratorConstant.DATA_TYPE_SQL);
+ ConvertNode convertNode = new ConvertNode();
+ convertNode.escapeData(inParams, ctx);
+ log.info("testEscapeData Result: " + ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_ESCAPE_DATA));
+ }
+
+
+
+// @Test
+ public void testConvertContextToJson() throws Exception {
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.uploadConfigInfo.UPLOAD-CONFIG-ID", "200");
+ ctx.setAttribute("tmp.uploadConfigInfo.VNF-ID", "00000");
+ ctx.setAttribute("tmp.uploadConfigInfo.test[0]", "test0");
+ ctx.setAttribute("tmp.uploadConfigInfo.test[1]", "test1");
+ ctx.setAttribute("tmp.uploadConfigInfo.test[2]", "test2");
+
+
+ ConvertNode convertNode = new ConvertNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+ inParams.put("contextKey", "tmp.uploadConfigInfo");
+
+
+ convertNode.convertContextToJson(inParams, ctx);
+
+ log.info("JSON CONTENT " + ctx.getAttribute("test.jsonContent"));
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+
+
+
+ }
+
+
+
+
+}
diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/merge/TestMergeNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/merge/TestMergeNode.java
new file mode 100644
index 000000000..191dfa3b5
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/merge/TestMergeNode.java
@@ -0,0 +1,98 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.sdnc.config.generator.merge;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant;
+import org.openecomp.sdnc.config.generator.merge.MergeNode;
+
+import org.openecomp.sdnc.sli.SvcLogicContext;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class TestMergeNode {
+
+ //@Test
+ public void testMergeJsonDataOnTemplate() throws Exception {
+ MergeNode mergeNode = new MergeNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+ String jsonData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_data.json"));
+ System.out.println("TestMergeNode.testMergeJsonDataOnTemplate()" + jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData);
+
+ String templateData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_template.xml"));
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ mergeNode.mergeJsonDataOnTemplate(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+
+ System.out.println("Result: " + ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA));
+
+ }
+
+ //@Ignore
+ public void testMergeComplexJsonDataOnTemplate() throws Exception {
+ MergeNode mergeNode = new MergeNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+ String jsonData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/complex/vdbe_data.json"));
+ System.out.println("TestMergeNode.testMergeJsonComplexDataOnTemplate()" + jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData);
+
+ String templateData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/complex/vdbe_template.xml"));
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ mergeNode.mergeComplexJsonDataOnTemplate(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+
+ System.out.println("Result: " + ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA));
+
+ }
+
+ //@Test
+ public void testMergeJsonDataOnTemplateFile() throws Exception {
+ MergeNode mergeNode = new MergeNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+ String jsonData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_data.json"));
+ System.out.println("TestMergeNode.testMergeJsonDataOnTemplate()" + jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE, "merge/vdbe_template.xml");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ mergeNode.mergeJsonDataOnTemplate(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+ System.out.println("Result: " + ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA));
+
+ }
+}
diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/pattern/TestPatternNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/pattern/TestPatternNode.java
new file mode 100644
index 000000000..41d8945c2
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/pattern/TestPatternNode.java
@@ -0,0 +1,111 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.sdnc.config.generator.pattern;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
+import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant;
+import org.openecomp.sdnc.config.generator.pattern.PatternNode;
+
+import org.openecomp.sdnc.sli.SvcLogicContext;
+
+public class TestPatternNode {
+
+
+ public void parseErrorLog() throws Exception {
+ PatternNode patternNode = new PatternNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+ String logData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/errorlog.txt"),ConfigGeneratorConstant.STRING_ENCODING);
+ //System.out.println("TestMergeNode.testMergeJsonDataOnTemplate()" + jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_LOG_DATA, logData);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ patternNode.parseErrorLog(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+
+ System.out.println("Result: " + ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_PARSED_ERROR));
+
+ }
+
+ //@Test
+ public void checkXMLData() throws Exception {
+ PatternNode patternNode = new PatternNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+ String xmlData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/xml_data.xml"),ConfigGeneratorConstant.STRING_ENCODING);
+ //System.out.println("TestMergeNode.testMergeJsonDataOnTemplate()" + jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, xmlData);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ patternNode.checkDataType(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+
+ System.out.println("Result: " + ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_DATA_TYPE));
+
+ }
+
+ //@Test
+ public void checkJsonData() throws Exception {
+ PatternNode patternNode = new PatternNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+ String xmlData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/json_data.json"),ConfigGeneratorConstant.STRING_ENCODING);
+ //System.out.println("TestMergeNode.testMergeJsonDataOnTemplate()" + jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, xmlData);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ patternNode.checkDataType(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+
+ System.out.println("Result: " + ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_DATA_TYPE));
+
+ }
+
+ //@Test
+ public void checStringData() throws Exception {
+ PatternNode patternNode = new PatternNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+ String stringData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/text_data.txt"),ConfigGeneratorConstant.STRING_ENCODING);
+ //System.out.println("TestMergeNode.testMergeJsonDataOnTemplate()" + jsonData);
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, stringData);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ patternNode.checkDataType(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+
+ System.out.println("Result: " + ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_DATA_TYPE));
+
+ }
+
+
+
+}
diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/transform/TestXSLTTransformerNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/transform/TestXSLTTransformerNode.java
new file mode 100644
index 000000000..a8460dadc
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/transform/TestXSLTTransformerNode.java
@@ -0,0 +1,60 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.sdnc.config.generator.transform;
+
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertEquals;
+
+import java.nio.charset.Charset;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
+import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant;
+import org.openecomp.sdnc.config.generator.merge.TestMergeNode;
+import org.openecomp.sdnc.config.generator.transform.XSLTTransformerNode;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import org.openecomp.sdnc.sli.SvcLogicContext;
+
+public class TestXSLTTransformerNode {
+ private static final EELFLogger log = EELFManager.getInstance().getLogger(TestXSLTTransformerNode.class);
+
+ //@Test
+ public void transformData() throws Exception {
+ SvcLogicContext ctx = new SvcLogicContext();
+
+ String templateData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("transform/template.xsl"), Charset.defaultCharset());
+ String requestData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream("transform/request.xml"), Charset.defaultCharset());
+
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData );
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA, requestData );
+ XSLTTransformerNode transformerNode = new XSLTTransformerNode();
+ transformerNode.transformData(inParams, ctx);
+ log.info("transformData Result: " + ctx.getAttribute(ConfigGeneratorConstant.OUTPUT_PARAM_TRANSFORMED_DATA));
+
+ }
+
+
+}
diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/writer/TestFileWriterNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/writer/TestFileWriterNode.java
new file mode 100644
index 000000000..2a526cd78
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/writer/TestFileWriterNode.java
@@ -0,0 +1,55 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.sdnc.config.generator.writer;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+import org.junit.Test;
+import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant;
+import org.openecomp.sdnc.config.generator.writer.FileWriterNode;
+
+import org.openecomp.sdnc.sli.SvcLogicContext;
+
+public class TestFileWriterNode {
+
+
+ //@Test
+ public void writeFile() throws Exception {
+ FileWriterNode FileWriterNode = new FileWriterNode();
+ Map<String, String> inParams = new HashMap<String, String>();
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME, "src/test/resources/writer/testcvaas.json");
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA,"{'name':'Name','role':'admin'}");
+ inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test");
+
+
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ FileWriterNode.writeFile(inParams, ctx);
+ assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+
+
+
+ }
+}
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_msc.txt b/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_msc.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_msc.txt
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_ssc.txt b/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_ssc.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_ssc.txt
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_vdbe.xml b/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_vdbe.xml
new file mode 100644
index 000000000..787796704
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/convert/escape/config_vdbe.xml
@@ -0,0 +1,19 @@
+<!--
+ ============LICENSE_START=======================================================
+ ONAP : APP-C
+ ================================================================================
+ Copyright (C) 2017 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=========================================================
+ -->
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_cli_config.json b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_cli_config.json
new file mode 100644
index 000000000..a82eaf0f1
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_cli_config.json
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_json_config.json b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_json_config.json
new file mode 100644
index 000000000..a82eaf0f1
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_json_config.json
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_parameters_config.json b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_parameters_config.json
new file mode 100644
index 000000000..a82eaf0f1
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_parameters_config.json
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_template_config.json b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_template_config.json
new file mode 100644
index 000000000..a82eaf0f1
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_template_config.json
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_xml_config.json b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_xml_config.json
new file mode 100644
index 000000000..a82eaf0f1
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/convert/payload_xml_config.json
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/merge/complex/vdbe_data.json b/appc-config/appc-config-generator/provider/src/test/resources/merge/complex/vdbe_data.json
new file mode 100644
index 000000000..a82eaf0f1
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/merge/complex/vdbe_data.json
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/merge/complex/vdbe_template.xml b/appc-config/appc-config-generator/provider/src/test/resources/merge/complex/vdbe_template.xml
new file mode 100644
index 000000000..787796704
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/merge/complex/vdbe_template.xml
@@ -0,0 +1,19 @@
+<!--
+ ============LICENSE_START=======================================================
+ ONAP : APP-C
+ ================================================================================
+ Copyright (C) 2017 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=========================================================
+ -->
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/merge/vdbe_data.json b/appc-config/appc-config-generator/provider/src/test/resources/merge/vdbe_data.json
new file mode 100644
index 000000000..a82eaf0f1
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/merge/vdbe_data.json
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/merge/vdbe_template.xml b/appc-config/appc-config-generator/provider/src/test/resources/merge/vdbe_template.xml
new file mode 100644
index 000000000..787796704
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/merge/vdbe_template.xml
@@ -0,0 +1,19 @@
+<!--
+ ============LICENSE_START=======================================================
+ ONAP : APP-C
+ ================================================================================
+ Copyright (C) 2017 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=========================================================
+ -->
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/pattern/errorlog.txt b/appc-config/appc-config-generator/provider/src/test/resources/pattern/errorlog.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/pattern/errorlog.txt
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/pattern/json_data.json b/appc-config/appc-config-generator/provider/src/test/resources/pattern/json_data.json
new file mode 100644
index 000000000..a82eaf0f1
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/pattern/json_data.json
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/pattern/text_data.txt b/appc-config/appc-config-generator/provider/src/test/resources/pattern/text_data.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/pattern/text_data.txt
@@ -0,0 +1 @@
+
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/pattern/xml_data.xml b/appc-config/appc-config-generator/provider/src/test/resources/pattern/xml_data.xml
new file mode 100644
index 000000000..787796704
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/pattern/xml_data.xml
@@ -0,0 +1,19 @@
+<!--
+ ============LICENSE_START=======================================================
+ ONAP : APP-C
+ ================================================================================
+ Copyright (C) 2017 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=========================================================
+ -->
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/transform/request.xml b/appc-config/appc-config-generator/provider/src/test/resources/transform/request.xml
new file mode 100644
index 000000000..9980d2035
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/transform/request.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+ ============LICENSE_START=======================================================
+ ONAP : APP-C
+ ================================================================================
+ Copyright (C) 2017 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=========================================================
+ -->
+
+<ARTICLE>
+ <TITLE>A Sample Article</TITLE>
+ <SECT>The First Major Section
+ <PARA>This section will introduce a subsection.</PARA>
+ <SECT>The Subsection Heading
+ <PARA>This is the text of the subsection.
+ </PARA>
+ </SECT>
+ </SECT>
+</ARTICLE>
diff --git a/appc-config/appc-config-generator/provider/src/test/resources/transform/template.xsl b/appc-config/appc-config-generator/provider/src/test/resources/transform/template.xsl
new file mode 100644
index 000000000..0ce46dfea
--- /dev/null
+++ b/appc-config/appc-config-generator/provider/src/test/resources/transform/template.xsl
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ ============LICENSE_START=======================================================
+ ONAP : APP-C
+ ================================================================================
+ Copyright (C) 2017 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=========================================================
+ -->
+
+
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ >
+ <xsl:output method="html"/>
+ <xsl:strip-space elements="SECT"/>
+
+ <xsl:template match="/">
+ <html><body>
+ <xsl:apply-templates/>
+ </body></html>
+ </xsl:template>
+
+ <xsl:template match="/ARTICLE/TITLE">
+ <h1 align="center"> <xsl:apply-templates/> </h1>
+ </xsl:template>
+
+ <!-- Top Level Heading -->
+ <xsl:template match="/ARTICLE/SECT">
+ <h2> <xsl:apply-templates select="text()|B|I|U|DEF|LINK"/> </h2>
+ <xsl:apply-templates select="SECT|PARA|LIST|NOTE"/>
+ </xsl:template>
+
+ <!-- Second-Level Heading -->
+ <xsl:template match="/ARTICLE/SECT/SECT">
+ <h3> <xsl:apply-templates select="text()|B|I|U|DEF|LINK"/> </h3>
+ <xsl:apply-templates select="SECT|PARA|LIST|NOTE"/>
+ </xsl:template>
+
+ <!-- Third-Level Heading -->
+ <xsl:template match="/ARTICLE/SECT/SECT/SECT">
+ <xsl:message terminate="yes">Error: Sections can only be nested 2 deep.</xsl:message>
+ </xsl:template>
+
+ <!-- Paragraph -->
+ <xsl:template match="PARA">
+ <p><xsl:apply-templates/></p>
+ </xsl:template>
+
+</xsl:stylesheet>
+
+