summaryrefslogtreecommitdiffstats
path: root/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test')
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/java/org/onap/policy/apex/plugins/event/protocol/yaml/TestYamlEventProtocol.java263
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/java/org/onap/policy/apex/plugins/event/protocol/yaml/TestYamlPluginStability.java259
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection0.yaml3
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection1.yaml3
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection2.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection3.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection4.yaml3
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection5.yaml5
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Empty0.yaml0
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Empty1.yaml4
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure0.yaml10
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure1.yaml10
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure2.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure3.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure4.yaml7
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure5.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/TOSCA0.yaml180
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection0_0.yaml9
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection1_0.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection2_0.yaml13
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection3_0.yaml12
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection4_0.yaml15
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection5_0.yaml11
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Empty1_0.yaml5
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure0_0.yaml9
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure0_1.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure1_0.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure1_1.yaml8
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure2_0.yaml11
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure3_0.yaml11
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure4_0.yaml11
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure5_0.yaml12
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/TOSCA0_0.yaml188
33 files changed, 1126 insertions, 0 deletions
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/java/org/onap/policy/apex/plugins/event/protocol/yaml/TestYamlEventProtocol.java b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/java/org/onap/policy/apex/plugins/event/protocol/yaml/TestYamlEventProtocol.java
new file mode 100644
index 000000000..40196eb8a
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/java/org/onap/policy/apex/plugins/event/protocol/yaml/TestYamlEventProtocol.java
@@ -0,0 +1,263 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.plugins.event.protocol.yaml;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters;
+import org.onap.policy.apex.context.parameters.SchemaParameters;
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
+import org.onap.policy.apex.model.basicmodel.service.ModelService;
+import org.onap.policy.apex.model.basicmodel.service.ParameterService;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
+import org.onap.policy.apex.model.eventmodel.concepts.AxField;
+import org.onap.policy.apex.model.utilities.TextFileUtils;
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.consumer.HeaderDelimitedTextBlockReader;
+import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.consumer.TextBlock;
+
+public class TestYamlEventProtocol {
+ @BeforeClass
+ public static void registerTestEventsAndSchemas() throws IOException {
+ SchemaParameters schemaParameters = new SchemaParameters();
+ schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters());
+ ParameterService.registerParameters(SchemaParameters.class, schemaParameters);
+
+ AxContextSchemas schemas = new AxContextSchemas();
+
+ AxContextSchema simpleIntSchema = new AxContextSchema(new AxArtifactKey("SimpleIntSchema", "0.0.1"), "JAVA",
+ "java.lang.Integer");
+ schemas.getSchemasMap().put(simpleIntSchema.getKey(), simpleIntSchema);
+
+ AxContextSchema simpleDoubleSchema = new AxContextSchema(new AxArtifactKey("SimpleDoubleSchema", "0.0.1"), "JAVA",
+ "java.lang.Double");
+ schemas.getSchemasMap().put(simpleDoubleSchema.getKey(), simpleDoubleSchema);
+
+ AxContextSchema simpleStringSchema = new AxContextSchema(new AxArtifactKey("SimpleStringSchema", "0.0.1"), "JAVA",
+ "java.lang.String");
+ schemas.getSchemasMap().put(simpleStringSchema.getKey(), simpleStringSchema);
+
+ AxContextSchema arrayListSchema = new AxContextSchema(new AxArtifactKey("ArrayListSchema", "0.0.1"), "JAVA",
+ "java.util.ArrayList");
+ schemas.getSchemasMap().put(arrayListSchema.getKey(), arrayListSchema);
+
+ AxContextSchema linkedHashMapSchema = new AxContextSchema(new AxArtifactKey("LinkedHashMapSchema", "0.0.1"), "JAVA",
+ "java.util.LinkedHashMap");
+ schemas.getSchemasMap().put(linkedHashMapSchema.getKey(), linkedHashMapSchema);
+
+ ModelService.registerModel(AxContextSchemas.class, schemas);
+
+ AxEvents events = new AxEvents();
+
+ AxEvent testEvent0 = new AxEvent(new AxArtifactKey("TestEvent0", "0.0.1"));
+ testEvent0.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ events.getEventMap().put(testEvent0.getKey(), testEvent0);
+
+ AxEvent testEvent1 = new AxEvent(new AxArtifactKey("TestEvent1", "0.0.1"));
+ testEvent1.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te1Field0 = new AxField(new AxReferenceKey(testEvent1.getKey(), "yaml_field"),
+ arrayListSchema.getKey());
+ testEvent1.getParameterMap().put("yaml_field", te1Field0);
+ events.getEventMap().put(testEvent1.getKey(), testEvent1);
+
+ AxEvent testEvent2 = new AxEvent(new AxArtifactKey("TestEvent2", "0.0.1"));
+ testEvent2.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te2Field0 = new AxField(new AxReferenceKey(testEvent2.getKey(), "hr"), simpleIntSchema.getKey());
+ testEvent2.getParameterMap().put("hr", te2Field0);
+ AxField te2Field1 = new AxField(new AxReferenceKey(testEvent2.getKey(), "avg"), simpleDoubleSchema.getKey());
+ testEvent2.getParameterMap().put("avg", te2Field1);
+ AxField te2Field2 = new AxField(new AxReferenceKey(testEvent2.getKey(), "rbi"), simpleIntSchema.getKey());
+ testEvent2.getParameterMap().put("rbi", te2Field2);
+ events.getEventMap().put(testEvent2.getKey(), testEvent2);
+
+ AxEvent testEvent3 = new AxEvent(new AxArtifactKey("TestEvent3", "0.0.1"));
+ testEvent3.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te3Field0 = new AxField(new AxReferenceKey(testEvent3.getKey(), "american"),
+ arrayListSchema.getKey());
+ testEvent3.getParameterMap().put("american", te3Field0);
+ AxField te3Field1 = new AxField(new AxReferenceKey(testEvent3.getKey(), "national"),
+ arrayListSchema.getKey());
+ testEvent3.getParameterMap().put("national", te3Field1);
+ events.getEventMap().put(testEvent3.getKey(), testEvent3);
+
+ AxEvent testEvent4 = new AxEvent(new AxArtifactKey("TestEvent4", "0.0.1"));
+ testEvent4.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te4Field0 = new AxField(new AxReferenceKey(testEvent4.getKey(), "yaml_field"),
+ arrayListSchema.getKey());
+ testEvent4.getParameterMap().put("yaml_field", te4Field0);
+ events.getEventMap().put(testEvent4.getKey(), testEvent4);
+
+ AxEvent testEvent5 = new AxEvent(new AxArtifactKey("TestEvent5", "0.0.1"));
+ testEvent5.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te5Field0 = new AxField(new AxReferenceKey(testEvent5.getKey(), "yaml_field"),
+ arrayListSchema.getKey());
+ testEvent5.getParameterMap().put("yaml_field", te5Field0);
+ events.getEventMap().put(testEvent5.getKey(), testEvent5);
+
+ AxEvent testEvent6 = new AxEvent(new AxArtifactKey("TestEvent6", "0.0.1"));
+ testEvent6.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te6Field0 = new AxField(new AxReferenceKey(testEvent6.getKey(), "MarkMcGwire"),
+ linkedHashMapSchema.getKey());
+ testEvent6.getParameterMap().put("Mark McGwire", te6Field0);
+ AxField te6Field1 = new AxField(new AxReferenceKey(testEvent6.getKey(), "SammySosa"),
+ linkedHashMapSchema.getKey());
+ testEvent6.getParameterMap().put("Sammy Sosa", te6Field1);
+ events.getEventMap().put(testEvent6.getKey(), testEvent6);
+
+ AxEvent testEvent7 = new AxEvent(new AxArtifactKey("TestEvent7", "0.0.1"));
+ testEvent7.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te7Field0 = new AxField(new AxReferenceKey(testEvent7.getKey(), "time"),
+ simpleIntSchema.getKey());
+ testEvent7.getParameterMap().put("time", te7Field0);
+ AxField te7Field1 = new AxField(new AxReferenceKey(testEvent7.getKey(), "player"),
+ simpleStringSchema.getKey());
+ testEvent7.getParameterMap().put("player", te7Field1);
+ AxField te7Field2 = new AxField(new AxReferenceKey(testEvent7.getKey(), "action"),
+ simpleStringSchema.getKey());
+ testEvent7.getParameterMap().put("action", te7Field2);
+ events.getEventMap().put(testEvent7.getKey(), testEvent7);
+
+ AxEvent testEvent8 = new AxEvent(new AxArtifactKey("TestEvent8", "0.0.1"));
+ testEvent8.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te8Field0 = new AxField(new AxReferenceKey(testEvent8.getKey(), "hr"),
+ arrayListSchema.getKey());
+ testEvent8.getParameterMap().put("hr", te8Field0);
+ AxField te8Field1 = new AxField(new AxReferenceKey(testEvent8.getKey(), "rbi"),
+ arrayListSchema.getKey());
+ testEvent8.getParameterMap().put("rbi", te8Field1);
+ events.getEventMap().put(testEvent8.getKey(), testEvent8);
+
+ AxEvent testEvent9 = new AxEvent(new AxArtifactKey("TestEvent9", "0.0.1"));
+ testEvent9.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te9Field0 = new AxField(new AxReferenceKey(testEvent9.getKey(), "ChicagoCubs"),
+ arrayListSchema.getKey());
+ testEvent9.getParameterMap().put("ChicagoCubs", te9Field0);
+ AxField te9Field1 = new AxField(new AxReferenceKey(testEvent9.getKey(), "AtlantaBraves"),
+ arrayListSchema.getKey());
+ testEvent9.getParameterMap().put("AtlantaBraves", te9Field1);
+ events.getEventMap().put(testEvent9.getKey(), testEvent9);
+
+ AxEvent testEvent10 = new AxEvent(new AxArtifactKey("TestEvent10", "0.0.1"));
+ testEvent10.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te10Field0 = new AxField(new AxReferenceKey(testEvent10.getKey(), "yaml_field"),
+ arrayListSchema.getKey());
+ testEvent10.getParameterMap().put("yaml_field", te10Field0);
+ events.getEventMap().put(testEvent10.getKey(), testEvent10);
+
+ AxEvent testEvent11 = new AxEvent(new AxArtifactKey("TestEvent11", "0.0.1"));
+ testEvent11.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField te11Field0 = new AxField(new AxReferenceKey(testEvent11.getKey(), "tosca_definitions_version"),
+ simpleStringSchema.getKey());
+ testEvent11.getParameterMap().put("tosca_definitions_version", te11Field0);
+ AxField te11Field1 = new AxField(new AxReferenceKey(testEvent11.getKey(), "description"),
+ simpleStringSchema.getKey(), true);
+ testEvent11.getParameterMap().put("description", te11Field1);
+ AxField te11Field2 = new AxField(new AxReferenceKey(testEvent11.getKey(), "node_types"),
+ linkedHashMapSchema.getKey(), true);
+ testEvent11.getParameterMap().put("node_types", te11Field2);
+ AxField te11Field3 = new AxField(new AxReferenceKey(testEvent11.getKey(), "topology_template"),
+ linkedHashMapSchema.getKey());
+ testEvent11.getParameterMap().put("topology_template", te11Field3);
+ events.getEventMap().put(testEvent11.getKey(), testEvent11);
+
+ ModelService.registerModel(AxEvents.class, events);
+ }
+
+ @AfterClass
+ public static void unregisterTestEventsAndSchemas() {
+ ModelService.clear();
+ }
+
+ @Test
+ public void testYamlProcessing() throws ApexEventException, IOException {
+ try {
+ testYamlDecodeEncode("TestEvent0", 1, 0, "Empty0");
+ fail("test should fail here");
+ } catch (ApexEventException e) {
+ assertEquals("event processing failed, event is null", e.getMessage());
+ }
+
+ testYamlDecodeEncode("TestEvent0", 1, 0, "Empty1");
+ testYamlDecodeEncode("TestEvent1", 1, 1, "Collection0");
+ testYamlDecodeEncode("TestEvent2", 1, 3, "Collection1");
+ testYamlDecodeEncode("TestEvent3", 1, 2, "Collection2");
+ testYamlDecodeEncode("TestEvent4", 1, 1, "Collection3");
+ testYamlDecodeEncode("TestEvent5", 1, 1, "Collection4");
+ testYamlDecodeEncode("TestEvent6", 1, 2, "Collection5");
+ testYamlDecodeEncode("TestEvent1", 2, 1, "Structure0");
+ testYamlDecodeEncode("TestEvent7", 2, 3, "Structure1");
+ testYamlDecodeEncode("TestEvent8", 1, 2, "Structure2");
+ testYamlDecodeEncode("TestEvent8", 1, 2, "Structure3");
+ testYamlDecodeEncode("TestEvent9", 1, 2, "Structure4");
+ testYamlDecodeEncode("TestEvent10", 1, 1, "Structure5");
+ testYamlDecodeEncode("TestEvent11", 1, 4, "TOSCA0");
+ }
+
+ private void testYamlDecodeEncode(final String eventName, final int eventCount, final int parCount, final String fileName)
+ throws ApexEventException, IOException {
+ YamlEventProtocolParameters parameters = new YamlEventProtocolParameters();
+ parameters.setDelimiterAtStart(false);
+
+ Apex2YamlEventConverter converter = new Apex2YamlEventConverter();
+ converter.init(parameters);
+
+ String filePath = "src/test/resources/yaml_in/" + fileName + ".yaml";
+ FileInputStream fileInputStream = new FileInputStream(new File(filePath));
+ HeaderDelimitedTextBlockReader reader = new HeaderDelimitedTextBlockReader(parameters);
+ reader.init(fileInputStream);
+
+ List<ApexEvent> eventList = new ArrayList<>();
+
+ TextBlock textBlock;
+ do {
+ textBlock = reader.readTextBlock();
+
+ eventList.addAll(converter.toApexEvent(eventName, textBlock.getText()));
+ } while (!textBlock.isEndOfText());
+
+ fileInputStream.close();
+
+ assertEquals(eventCount, eventList.size());
+
+ for (int eventNo = 0; eventNo < eventCount; eventNo++) {
+ assertEquals(parCount, eventList.get(0).size());
+
+ String eventYaml = (String) converter.fromApexEvent(eventList.get(eventNo));
+ String expectedYaml = TextFileUtils.getTextFileAsString("src/test/resources/yaml_out/" + fileName + '_' + eventNo + ".yaml");
+ assertEquals(expectedYaml.replaceAll("\\s*", ""), eventYaml.replaceAll("\\s*", ""));
+ }
+ }
+}
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/java/org/onap/policy/apex/plugins/event/protocol/yaml/TestYamlPluginStability.java b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/java/org/onap/policy/apex/plugins/event/protocol/yaml/TestYamlPluginStability.java
new file mode 100644
index 000000000..126a01df7
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/java/org/onap/policy/apex/plugins/event/protocol/yaml/TestYamlPluginStability.java
@@ -0,0 +1,259 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.policy.apex.plugins.event.protocol.yaml;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters;
+import org.onap.policy.apex.context.parameters.SchemaParameters;
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
+import org.onap.policy.apex.model.basicmodel.service.ModelService;
+import org.onap.policy.apex.model.basicmodel.service.ParameterService;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
+import org.onap.policy.apex.model.eventmodel.concepts.AxField;
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
+
+public class TestYamlPluginStability {
+ static AxEvent testEvent;
+
+ @BeforeClass
+ public static void registerTestEventsAndSchemas() throws IOException {
+ SchemaParameters schemaParameters = new SchemaParameters();
+ schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters());
+ ParameterService.registerParameters(SchemaParameters.class, schemaParameters);
+
+ AxContextSchemas schemas = new AxContextSchemas();
+
+ AxContextSchema simpleIntSchema = new AxContextSchema(new AxArtifactKey("SimpleIntSchema", "0.0.1"), "JAVA",
+ "java.lang.Integer");
+ schemas.getSchemasMap().put(simpleIntSchema.getKey(), simpleIntSchema);
+
+ AxContextSchema simpleDoubleSchema = new AxContextSchema(new AxArtifactKey("SimpleDoubleSchema", "0.0.1"),
+ "JAVA", "java.lang.Double");
+ schemas.getSchemasMap().put(simpleDoubleSchema.getKey(), simpleDoubleSchema);
+
+ AxContextSchema simpleStringSchema = new AxContextSchema(new AxArtifactKey("SimpleStringSchema", "0.0.1"),
+ "JAVA", "java.lang.String");
+ schemas.getSchemasMap().put(simpleStringSchema.getKey(), simpleStringSchema);
+
+ ModelService.registerModel(AxContextSchemas.class, schemas);
+
+ AxEvents events = new AxEvents();
+
+ testEvent = new AxEvent(new AxArtifactKey("TestEvent", "0.0.1"));
+ testEvent.setNameSpace("org.onap.policy.apex.plugins.event.protocol.yaml");
+ AxField teField0 = new AxField(new AxReferenceKey(testEvent.getKey(), "intValue"), simpleIntSchema.getKey());
+ testEvent.getParameterMap().put("intValue", teField0);
+ AxField teField1 = new AxField(new AxReferenceKey(testEvent.getKey(), "doubleValue"),
+ simpleDoubleSchema.getKey());
+ testEvent.getParameterMap().put("doubleValue", teField1);
+ AxField teField2 = new AxField(new AxReferenceKey(testEvent.getKey(), "stringValue"),
+ simpleStringSchema.getKey(), true);
+ testEvent.getParameterMap().put("stringValue", teField2);
+ events.getEventMap().put(testEvent.getKey(), testEvent);
+
+ ModelService.registerModel(AxEvents.class, events);
+ }
+
+ @AfterClass
+ public static void unregisterTestEventsAndSchemas() {
+ ModelService.clear();
+ }
+
+ @Test
+ public void testStability() throws ApexEventException {
+ Apex2YamlEventConverter converter = new Apex2YamlEventConverter();
+
+ try {
+ converter.init(null);
+ fail("this test should throw an exception");
+ } catch (ApexEventRuntimeException e) {
+ assertEquals("specified consumer properties are not applicable to the YAML event protocol", e.getMessage());
+ }
+
+ YamlEventProtocolParameters pars = new YamlEventProtocolParameters();
+ converter.init(pars);
+
+ try {
+ converter.toApexEvent("NonExistantEvent", "");
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertEquals("Failed to unmarshal YAML event: an event definition for an event named \"NonExistantEvent\"",
+ e.getMessage().substring(0, 89));
+ }
+
+ try {
+ converter.toApexEvent("TestEvent", null);
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertEquals("event processing failed, event is null", e.getMessage());
+ }
+
+ try {
+ converter.toApexEvent("TestEvent", 1);
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertEquals("error converting event \"1\" to a string", e.getMessage());
+ }
+
+ try {
+ converter.toApexEvent("TestEvent", "");
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertTrue(e.getMessage().contains("Field \"doubleValue\" is missing"));
+ }
+
+ try {
+ converter.fromApexEvent(null);
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertEquals("event processing failed, Apex event is null", e.getMessage());
+ }
+
+ ApexEvent apexEvent = new ApexEvent(testEvent.getKey().getName(), testEvent.getKey().getVersion(),
+ testEvent.getNameSpace(), testEvent.getSource(), testEvent.getTarget());
+ apexEvent.put("doubleValue", 123.45);
+ apexEvent.put("intValue", 123);
+ apexEvent.put("stringValue", "123.45");
+
+ apexEvent.setExceptionMessage("my wonderful exception message");
+ String yamlString = (String) converter.fromApexEvent(apexEvent);
+ assertTrue(yamlString.contains("my wonderful exception message"));
+
+ apexEvent.remove("intValue");
+ try {
+ yamlString = (String) converter.fromApexEvent(apexEvent);
+ fail("this test should throw an exception");
+ } catch (ApexEventRuntimeException e) {
+ assertEquals("error parsing TestEvent:0.0.1 event to Json. Field \"intValue\" is missing",
+ e.getMessage().substring(0, 72));
+ }
+
+ try {
+ converter.toApexEvent(null, "");
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertEquals("Failed to unmarshal YAML event: event received without mandatory parameter \"name\"",
+ e.getMessage().substring(0, 81));
+ }
+
+ pars.setNameAlias("TheNameField");
+ try {
+ converter.toApexEvent(null, "");
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertEquals("Failed to unmarshal YAML event: event received without mandatory parameter \"name\"",
+ e.getMessage().substring(0, 81));
+ }
+
+ apexEvent.put("intValue", 123);
+
+ apexEvent.remove("stringValue");
+ yamlString = (String) converter.fromApexEvent(apexEvent);
+ apexEvent.put("stringValue", "123.45");
+
+ String yamlInputString = "doubleValue: 123.45\n" + "intValue: 123";
+
+ List<ApexEvent> eventList = converter.toApexEvent("TestEvent", yamlInputString);
+ assertEquals(123.45, eventList.get(0).get("doubleValue"));
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: null";
+
+ eventList = converter.toApexEvent("TestEvent", yamlInputString);
+ assertEquals(null, eventList.get(0).get("stringValue"));
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: TestEvent";
+ pars.setNameAlias("stringValue");
+ eventList = converter.toApexEvent(null, yamlInputString);
+ assertEquals("TestEvent", eventList.get(0).get("stringValue"));
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: SomeOtherEvent";
+ eventList = converter.toApexEvent("TestEvent", yamlInputString);
+ assertEquals("SomeOtherEvent", eventList.get(0).get("stringValue"));
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: 0.0.1";
+ pars.setNameAlias(null);
+ pars.setVersionAlias("stringValue");
+ eventList = converter.toApexEvent("TestEvent", yamlInputString);
+ assertEquals("0.0.1", eventList.get(0).get("stringValue"));
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: org.some.other.namespace";
+ pars.setVersionAlias(null);
+ pars.setNameSpaceAlias("stringValue");
+ try {
+ converter.toApexEvent("TestEvent", yamlInputString);
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertEquals("Failed to unmarshal YAML event: namespace \"org.some.other.namespace\" on event",
+ e.getMessage().substring(0, 77));
+ }
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: org.onap.policy.apex.plugins.event.protocol.yaml";
+ eventList = converter.toApexEvent("TestEvent", yamlInputString);
+ assertEquals("org.onap.policy.apex.plugins.event.protocol.yaml", eventList.get(0).getNameSpace());
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: MySource";
+ pars.setNameSpaceAlias(null);
+ pars.setSourceAlias("stringValue");
+ eventList = converter.toApexEvent("TestEvent", yamlInputString);
+ assertEquals("MySource", eventList.get(0).getSource());
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: MyTarget";
+ pars.setSourceAlias(null);
+ pars.setTargetAlias("stringValue");
+ eventList = converter.toApexEvent("TestEvent", yamlInputString);
+ assertEquals("MyTarget", eventList.get(0).getTarget());
+ pars.setTargetAlias(null);
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: 123\n" + "stringValue: MyString";
+ pars.setSourceAlias(null);
+ pars.setTargetAlias("intValue");
+ try {
+ converter.toApexEvent("TestEvent", yamlInputString);
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertEquals("Failed to unmarshal YAML event: field \"target\" with type \"java.lang.Integer\"",
+ e.getMessage().substring(0, 76));
+ }
+ pars.setTargetAlias(null);
+
+ yamlInputString = "doubleValue: 123.45\n" + "intValue: ~\n"+ "stringValue: MyString";
+ try {
+ converter.toApexEvent("TestEvent", yamlInputString);
+ fail("this test should throw an exception");
+ } catch (ApexEventException e) {
+ assertTrue(e.getMessage().contains("mandatory field \"intValue\" is missing"));
+ }
+ }
+}
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection0.yaml
new file mode 100644
index 000000000..12519fb48
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection0.yaml
@@ -0,0 +1,3 @@
+- Mark McGwire
+- Sammy Sosa
+- Ken Griffey \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection1.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection1.yaml
new file mode 100644
index 000000000..7b7ec948d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection1.yaml
@@ -0,0 +1,3 @@
+hr: 65 # Home runs
+avg: 0.278 # Batting average
+rbi: 147 # Runs Batted In
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection2.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection2.yaml
new file mode 100644
index 000000000..656d628ec
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection2.yaml
@@ -0,0 +1,8 @@
+american:
+ - Boston Red Sox
+ - Detroit Tigers
+ - New York Yankees
+national:
+ - New York Mets
+ - Chicago Cubs
+ - Atlanta Braves
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection3.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection3.yaml
new file mode 100644
index 000000000..e60d8a9b3
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection3.yaml
@@ -0,0 +1,8 @@
+-
+ name: Mark McGwire
+ hr: 65
+ avg: 0.278
+-
+ name: Sammy Sosa
+ hr: 63
+ avg: 0.288 \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection4.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection4.yaml
new file mode 100644
index 000000000..65da53d6e
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection4.yaml
@@ -0,0 +1,3 @@
+- [name , hr, avg ]
+- [Mark McGwire, "65", "0.278"]
+- [Sammy Sosa , "63", "0.288"] \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection5.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection5.yaml
new file mode 100644
index 000000000..dfc534fd2
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Collection5.yaml
@@ -0,0 +1,5 @@
+MarkMcGwire: {hr: 65, avg: 0.278}
+SammySosa: {
+ hr: 63,
+ avg: 0.288
+ } \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Empty0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Empty0.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Empty0.yaml
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Empty1.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Empty1.yaml
new file mode 100644
index 000000000..8946d48ba
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Empty1.yaml
@@ -0,0 +1,4 @@
+# Comments line
+
+
+# Comment line \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure0.yaml
new file mode 100644
index 000000000..0a47b89d8
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure0.yaml
@@ -0,0 +1,10 @@
+---
+# Ranking of 1998 home runs
+- Mark McGwire
+- Sammy Sosa
+- Ken Griffey
+
+---
+# Team ranking
+- Chicago Cubs
+- St Louis Cardinals \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure1.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure1.yaml
new file mode 100644
index 000000000..05e102d8e
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure1.yaml
@@ -0,0 +1,10 @@
+---
+time: 20:03:20
+player: Sammy Sosa
+action: strike (miss)
+...
+---
+time: 20:03:47
+player: Sammy Sosa
+action: grand slam
+...
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure2.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure2.yaml
new file mode 100644
index 000000000..a3ef726c0
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure2.yaml
@@ -0,0 +1,8 @@
+---
+hr: # 1998 hr ranking
+ - Mark McGwire
+ - Sammy Sosa
+rbi:
+ # 1998 rbi ranking
+ - Sammy Sosa
+ - Ken Griffey \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure3.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure3.yaml
new file mode 100644
index 000000000..bf46f753c
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure3.yaml
@@ -0,0 +1,8 @@
+---
+hr:
+ - Mark McGwire
+ # Following node labeled SS
+ - &SS Sammy Sosa
+rbi:
+ - *SS # Subsequent occurrence
+ - Ken Griffey \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure4.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure4.yaml
new file mode 100644
index 000000000..eb3fd722c
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure4.yaml
@@ -0,0 +1,7 @@
+? ChicagoCubs
+:
+ - 2001-07-23
+
+? AtlantaBraves
+: [ 2001-07-02, 2001-08-12,
+ 2001-08-14 ] \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure5.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure5.yaml
new file mode 100644
index 000000000..8a26671ba
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/Structure5.yaml
@@ -0,0 +1,8 @@
+---
+# Products purchased
+- item : Super Hoop
+ quantity: 1
+- item : Basketball
+ quantity: 4
+- item : Big Shoes
+ quantity: 1 \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/TOSCA0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/TOSCA0.yaml
new file mode 100644
index 000000000..27977f47f
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_in/TOSCA0.yaml
@@ -0,0 +1,180 @@
+# https://wiki.onap.org/display/DW/VNFD+example
+tosca_definitions_version: tosca_simple_profile_yaml_1_1
+description: the VNFD of MyVnf
+
+node_types:
+ MyCompany.MyVnf.1_0.1_0: # node type of MyVnf
+ derived_from: tosca.nodes.nfv.VNF
+ properties:
+ descriptor_id:
+ type: string
+ constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] ]
+ default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
+ required: true
+ provider:
+ type: string
+ constraints: [ valid_values: [ MyCompany ] ]
+ default: MyCompany
+ required: true
+ product_name:
+ type: string
+ constraints: [ valid_values: [ MyVnf ] ]
+ default: Myvnf
+ required: true
+ software_version:
+ type: string
+ constraints: [ valid_values: [ '1.0' ] ]
+ default: '1.0'
+ required: true
+ descriptor_version:
+ type: string
+ constraints: [ valid_values: [ '1.0' ] ]
+ default: '1.0'
+ required: true
+ flavour_id:
+ type: string
+ constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example
+ default: simple
+ required: true
+ flavour_description:
+ type: string
+ constraints: []
+ default: ""
+ required: true
+ vnfm_info:
+ type: list
+ constraints: []
+ default: ""
+ required: true
+ interfaces:
+ Nfv:
+ instantiate:
+ inputs:
+ parameter_1:
+ type: string
+ required: false
+ default: value_1
+ constraints: []
+ parameter_2:
+ type: string
+ required: false
+ default: value_2
+ constraints: []
+ terminate:
+ implementation: terminate.workbook.mistral.yaml
+
+
+topology_template:
+ substitution_mappings:
+ node_type: MyCompany.MyVnf.1_0.1_0
+ requirements:
+ - virtual_link: [ Cp_2, external_virtual_link ] # expose as external CP
+ - virtual_link: [ Cp_4, external_virtual_link ] # expose as external CP
+
+ node_templates:
+ VDU_compute_1:
+ type: tosca.nodes.nfv.Vdu.Compute
+ properties:
+ name: ..
+ description: ..
+ boot_order: ..
+ nfvi_constraints: ..
+ configurable_properties:
+ additional_vnfc_configurable_properties: {}
+ vdu_profile:
+ min_number_of_instances: 1
+ max_number_of_instances: 4
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 8096 MB
+ virtual_cpu:
+ cpu_architecture: x86
+ num_virtual_cpu: 2
+ virtual_cpu_clock: 1800 MHz
+ requirements:
+ - virtual_storage: Storage_1
+
+ Storage_1:
+ type: tosca.nodes.nfv.Vdu.VirtualStorage
+ properties:
+ type_of_storage: ..
+ size_of_storage: 100MB
+ rdma_enabled: ..
+
+ Cp_1:
+ type: tosca.nodes.nfv.VduCp
+ properties:
+ layer_protocol: ipv4
+ role: leaf
+ description: Internal connection point on an VL
+ requirements:
+ - virtual_binding: Vdu_1
+ - virtual_link: internalVl_1
+
+
+ internalVl_1:
+ type: tosca.nodes.nfv.VirtualLink
+ properties:
+ connectivity_type:
+ layer_protocol: ipv4
+ flow_pattern: mesh
+ test_access: []
+ description: ..
+ vl_profile:
+ qos:
+ maxBitRateRequirements:
+ minBitRateRequirements:
+
+
+ Cp_2:
+ type: tosca.nodes.nfv.VduCp
+ properties:
+ layer_protocol: ipv4
+ role: leaf
+ description: External connection point to access exteranlVl_1
+ requirements:
+ - external_virtual_link:
+ - virtual_binding: Vdu_1
+
+
+ VDU_compute_2:
+ type: tosca.nodes.nfv.Vdu.Compute
+ properties:
+ name: ..
+ description: ..
+ boot_order: ..
+ nfvi_constraints: ..
+ configurable_properties:
+ additional_vnfc_configurable_properties: {}
+ vdu_profile:
+ min_number_of_instances: 2
+ max_number_of_instances: 6
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 8096 MB
+ virtual_cpu:
+ cpu_architecture: x86
+ num_virtual_cpu: 4
+ virtual_cpu_clock: 1800 MHz
+ Cp_3:
+ type: tosca.nodes.nfv.VduCp
+ properties:
+ layer_protocol: ipv4
+ role: leaf
+ description: Internal connection point on an VL
+ requirements:
+ - virtual_binding: Vdu_2
+ - virtual_link: internalVl_1
+ Cp_4:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ layer_protocol: ipv4
+ role: leaf
+ description: External connection point to access exteranlVl_2
+ requirements:
+ - external_virtual_link:
+ - virtual_binding: Vdu_2 \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection0_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection0_0.yaml
new file mode 100644
index 000000000..a40e4262c
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection0_0.yaml
@@ -0,0 +1,9 @@
+name: TestEvent1
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+yaml_field:
+- Mark McGwire
+- Sammy Sosa
+- Ken Griffey \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection1_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection1_0.yaml
new file mode 100644
index 000000000..6d950321d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection1_0.yaml
@@ -0,0 +1,8 @@
+name: TestEvent2
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+avg: 0.278
+hr: 65
+rbi: 147 \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection2_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection2_0.yaml
new file mode 100644
index 000000000..b33b14ec9
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection2_0.yaml
@@ -0,0 +1,13 @@
+name: TestEvent3
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+american:
+- Boston Red Sox
+- Detroit Tigers
+- New York Yankees
+national:
+- New York Mets
+- Chicago Cubs
+- Atlanta Braves \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection3_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection3_0.yaml
new file mode 100644
index 000000000..bc99359ec
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection3_0.yaml
@@ -0,0 +1,12 @@
+name: TestEvent4
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+yaml_field:
+- name: Mark McGwire
+ hr: 65
+ avg: 0.278
+- name: Sammy Sosa
+ hr: 63
+ avg: 0.288 \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection4_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection4_0.yaml
new file mode 100644
index 000000000..2d924ff1f
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection4_0.yaml
@@ -0,0 +1,15 @@
+name: TestEvent5
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+yaml_field:
+- - name
+ - hr
+ - avg
+- - Mark McGwire
+ - '65'
+ - '0.278'
+- - Sammy Sosa
+ - '63'
+ - '0.288' \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection5_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection5_0.yaml
new file mode 100644
index 000000000..e9e586acb
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Collection5_0.yaml
@@ -0,0 +1,11 @@
+name: TestEvent6
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+Mark McGwire:
+ hr: 65
+ avg: 0.278
+Sammy Sosa:
+ hr: 63
+ avg: 0.288
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Empty1_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Empty1_0.yaml
new file mode 100644
index 000000000..d2546754c
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Empty1_0.yaml
@@ -0,0 +1,5 @@
+name: TestEvent0
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: '' \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure0_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure0_0.yaml
new file mode 100644
index 000000000..fa98c2d8e
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure0_0.yaml
@@ -0,0 +1,9 @@
+name: TestEvent1
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+yaml_field:
+- Mark McGwire
+- Sammy Sosa
+- Ken Griffey
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure0_1.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure0_1.yaml
new file mode 100644
index 000000000..b8be6e580
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure0_1.yaml
@@ -0,0 +1,8 @@
+name: TestEvent1
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+yaml_field:
+- Chicago Cubs
+- St Louis Cardinals \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure1_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure1_0.yaml
new file mode 100644
index 000000000..e81ba58b4
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure1_0.yaml
@@ -0,0 +1,8 @@
+name: TestEvent7
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+action: strike (miss)
+player: Sammy Sosa
+time: 72200 \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure1_1.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure1_1.yaml
new file mode 100644
index 000000000..4e0537e62
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure1_1.yaml
@@ -0,0 +1,8 @@
+name: TestEvent7
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+action: grand slam
+player: Sammy Sosa
+time: 72227 \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure2_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure2_0.yaml
new file mode 100644
index 000000000..44b797549
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure2_0.yaml
@@ -0,0 +1,11 @@
+name: TestEvent8
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+hr:
+- Mark McGwire
+- Sammy Sosa
+rbi:
+- Sammy Sosa
+- Ken Griffey \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure3_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure3_0.yaml
new file mode 100644
index 000000000..44b797549
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure3_0.yaml
@@ -0,0 +1,11 @@
+name: TestEvent8
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+hr:
+- Mark McGwire
+- Sammy Sosa
+rbi:
+- Sammy Sosa
+- Ken Griffey \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure4_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure4_0.yaml
new file mode 100644
index 000000000..084ab9941
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure4_0.yaml
@@ -0,0 +1,11 @@
+name: TestEvent9
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+AtlantaBraves:
+- 2001-07-02T00:00:00Z
+- 2001-08-12T00:00:00Z
+- 2001-08-14T00:00:00Z
+ChicagoCubs:
+- 2001-07-23T00:00:00Z \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure5_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure5_0.yaml
new file mode 100644
index 000000000..6ba5143d9
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/Structure5_0.yaml
@@ -0,0 +1,12 @@
+name: TestEvent10
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+yaml_field:
+- item: Super Hoop
+ quantity: 1
+- item: Basketball
+ quantity: 4
+- item: Big Shoes
+ quantity: 1
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/TOSCA0_0.yaml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/TOSCA0_0.yaml
new file mode 100644
index 000000000..910811f6e
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-yaml/src/test/resources/yaml_out/TOSCA0_0.yaml
@@ -0,0 +1,188 @@
+name: TestEvent11
+version: 0.0.1
+nameSpace: org.onap.policy.apex.plugins.event.protocol.yaml
+source: ''
+target: ''
+description: the VNFD of MyVnf
+node_types:
+ MyCompany.MyVnf.1_0.1_0:
+ derived_from: tosca.nodes.nfv.VNF
+ properties:
+ descriptor_id:
+ type: string
+ constraints:
+ - valid_values:
+ - b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
+ default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
+ required: true
+ provider:
+ type: string
+ constraints:
+ - valid_values:
+ - MyCompany
+ default: MyCompany
+ required: true
+ product_name:
+ type: string
+ constraints:
+ - valid_values:
+ - MyVnf
+ default: Myvnf
+ required: true
+ software_version:
+ type: string
+ constraints:
+ - valid_values:
+ - '1.0'
+ default: '1.0'
+ required: true
+ descriptor_version:
+ type: string
+ constraints:
+ - valid_values:
+ - '1.0'
+ default: '1.0'
+ required: true
+ flavour_id:
+ type: string
+ constraints:
+ - valid_values:
+ - simple
+ default: simple
+ required: true
+ flavour_description:
+ type: string
+ constraints: []
+ default: ''
+ required: true
+ vnfm_info:
+ type: list
+ constraints: []
+ default: ''
+ required: true
+ interfaces:
+ Nfv:
+ instantiate:
+ inputs:
+ parameter_1:
+ type: string
+ required: false
+ default: value_1
+ constraints: []
+ parameter_2:
+ type: string
+ required: false
+ default: value_2
+ constraints: []
+ terminate:
+ implementation: terminate.workbook.mistral.yaml
+topology_template:
+ substitution_mappings:
+ node_type: MyCompany.MyVnf.1_0.1_0
+ requirements:
+ - virtual_link:
+ - Cp_2
+ - external_virtual_link
+ - virtual_link:
+ - Cp_4
+ - external_virtual_link
+ node_templates:
+ VDU_compute_1:
+ type: tosca.nodes.nfv.Vdu.Compute
+ properties:
+ name: ..
+ description: ..
+ boot_order: ..
+ nfvi_constraints: ..
+ configurable_properties:
+ additional_vnfc_configurable_properties: {}
+ vdu_profile:
+ min_number_of_instances: 1
+ max_number_of_instances: 4
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 8096 MB
+ virtual_cpu:
+ cpu_architecture: x86
+ num_virtual_cpu: 2
+ virtual_cpu_clock: 1800 MHz
+ requirements:
+ - virtual_storage: Storage_1
+ Storage_1:
+ type: tosca.nodes.nfv.Vdu.VirtualStorage
+ properties:
+ type_of_storage: ..
+ size_of_storage: 100MB
+ rdma_enabled: ..
+ Cp_1:
+ type: tosca.nodes.nfv.VduCp
+ properties:
+ layer_protocol: ipv4
+ role: leaf
+ description: Internal connection point on an VL
+ requirements:
+ - virtual_binding: Vdu_1
+ - virtual_link: internalVl_1
+ internalVl_1:
+ type: tosca.nodes.nfv.VirtualLink
+ properties:
+ connectivity_type:
+ layer_protocol: ipv4
+ flow_pattern: mesh
+ test_access: []
+ description: ..
+ vl_profile:
+ qos: null
+ maxBitRateRequirements: null
+ minBitRateRequirements: null
+ Cp_2:
+ type: tosca.nodes.nfv.VduCp
+ properties:
+ layer_protocol: ipv4
+ role: leaf
+ description: External connection point to access exteranlVl_1
+ requirements:
+ - external_virtual_link: null
+ - virtual_binding: Vdu_1
+ VDU_compute_2:
+ type: tosca.nodes.nfv.Vdu.Compute
+ properties:
+ name: ..
+ description: ..
+ boot_order: ..
+ nfvi_constraints: ..
+ configurable_properties:
+ additional_vnfc_configurable_properties: {}
+ vdu_profile:
+ min_number_of_instances: 2
+ max_number_of_instances: 6
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 8096 MB
+ virtual_cpu:
+ cpu_architecture: x86
+ num_virtual_cpu: 4
+ virtual_cpu_clock: 1800 MHz
+ Cp_3:
+ type: tosca.nodes.nfv.VduCp
+ properties:
+ layer_protocol: ipv4
+ role: leaf
+ description: Internal connection point on an VL
+ requirements:
+ - virtual_binding: Vdu_2
+ - virtual_link: internalVl_1
+ Cp_4:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ layer_protocol: ipv4
+ role: leaf
+ description: External connection point to access exteranlVl_2
+ requirements:
+ - external_virtual_link: null
+ - virtual_binding: Vdu_2
+tosca_definitions_version: tosca_simple_profile_yaml_1_1 \ No newline at end of file