diff options
5 files changed, 1093 insertions, 0 deletions
diff --git a/tools/model-generator/pom.xml b/tools/model-generator/pom.xml index 7e7dd932d..16ddb769d 100644 --- a/tools/model-generator/pom.xml +++ b/tools/model-generator/pom.xml @@ -62,6 +62,11 @@ <version>${project.version}</version> <scope>test</scope> </dependency> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> diff --git a/tools/model-generator/src/test/java/org/onap/policy/apex/tools/model/generator/model2event/Model2EventSchemaTest.java b/tools/model-generator/src/test/java/org/onap/policy/apex/tools/model/generator/model2event/Model2EventSchemaTest.java new file mode 100644 index 000000000..552101f94 --- /dev/null +++ b/tools/model-generator/src/test/java/org/onap/policy/apex/tools/model/generator/model2event/Model2EventSchemaTest.java @@ -0,0 +1,142 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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.tools.model.generator.model2event; + +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.junit.Assert.assertEquals; + +import java.util.Arrays; +import org.apache.avro.Schema; +import org.apache.avro.Schema.Field; +import org.apache.avro.Schema.Type; +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.ContextParameterConstants; +import org.onap.policy.apex.context.parameters.SchemaParameters; +import org.onap.policy.apex.model.basicmodel.service.ModelService; +import org.onap.policy.common.parameters.ParameterService; +import org.stringtemplate.v4.STGroupFile; + +/** + * Test the Model2EventSchema. + */ +public class Model2EventSchemaTest { + String modelFile = "src/test/resources/blankSchema.json"; + String type = "stimuli"; + /** The name of the application. */ + public static final String APP_NAME = "gen-model2eventSchema"; + + /** + * Set ups parameterService for the test. + */ + @BeforeClass + public static void prepareForTest() { + final SchemaParameters schemaParameters = new SchemaParameters(); + schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME); + schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters()); + if (!ParameterService.contains(ContextParameterConstants.SCHEMA_GROUP_NAME)) { + ParameterService.register(schemaParameters); + } + } + + @Test + public void testEventSchemaBadModelFile() { + Model2JsonEventSchema app = new Model2JsonEventSchema(modelFile, type, APP_NAME); + assertThatCode(() -> { + int ret = app.runApp(); + assertEquals(-1, ret); + }).doesNotThrowAnyException(); + + } + + @Test + public void testEventSchemaBadType() { + modelFile = "src/test/resources/SmallModel.json"; + type = "default"; + Model2JsonEventSchema app = new Model2JsonEventSchema(modelFile, type, APP_NAME); + assertThatCode(() -> { + int ret = app.runApp(); + assertEquals(-1, ret); + }).doesNotThrowAnyException(); + } + + @Test + public void testEventSchemaStimuli() { + modelFile = "src/test/resources/SmallModel.json"; + type = "stimuli"; + Model2JsonEventSchema app = new Model2JsonEventSchema(modelFile, type, APP_NAME); + assertThatCode(() -> { + int ret = app.runApp(); + assertEquals(0, ret); + }).doesNotThrowAnyException(); + } + + @Test + public void testEventSchemaResponse() { + modelFile = "src/test/resources/SmallModel.json"; + type = "response"; + Model2JsonEventSchema app = new Model2JsonEventSchema(modelFile, type, APP_NAME); + assertThatCode(() -> { + int ret = app.runApp(); + assertEquals(0, ret); + }).doesNotThrowAnyException(); + } + + @Test + public void testEventSchemaInternal() { + modelFile = "src/test/resources/SmallModel.json"; + type = "internal"; + Model2JsonEventSchema app = new Model2JsonEventSchema(modelFile, type, APP_NAME); + assertThatCode(() -> { + int ret = app.runApp(); + assertEquals(0, ret); + }).doesNotThrowAnyException(); + } + + @Test + public void testEventSchemaNotSimpleType() { + modelFile = "src/test/resources/ExecutionPropertiesRestTestPolicyModel.json"; + type = "internal"; + Model2JsonEventSchema app = new Model2JsonEventSchema(modelFile, type, APP_NAME); + final STGroupFile stg = new STGroupFile("org/onap/policy/apex/tools/model/generator/event-json.stg"); + + Field stringField = new Field("string", Schema.create(Type.STRING), null, null); + Field enumField = + new Field("enum", Schema.createEnum("my_enum", "doc", null, Arrays.asList("a", "b", "c")), null, null); + Schema schema = Schema.createRecord("my_record", "doc", "mytest", false); + schema.setFields(Arrays.asList(stringField, enumField)); + Schema arrayOut = Schema.createArray(schema); + Schema mapOut = Schema.createMap(arrayOut); + app.addFieldType(mapOut, stg); + assertThatCode(() -> { + int ret = app.runApp(); + assertEquals(0, ret); + }).doesNotThrowAnyException(); + } + + @AfterClass + public static void cleanTest() { + ParameterService.deregister(ContextParameterConstants.SCHEMA_GROUP_NAME); + ModelService.clear(); + } +}
\ No newline at end of file diff --git a/tools/model-generator/src/test/resources/ExecutionPropertiesRestTestPolicyModel.json b/tools/model-generator/src/test/resources/ExecutionPropertiesRestTestPolicyModel.json new file mode 100644 index 000000000..14a6234e3 --- /dev/null +++ b/tools/model-generator/src/test/resources/ExecutionPropertiesRestTestPolicyModel.json @@ -0,0 +1,530 @@ +{ + "apexPolicyModel" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel", + "version" : "0.0.1" + }, + "keyInformation" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_KeyInfo", + "version" : "0.0.1" + }, + "keyInfoMap" : { + "entry" : [ { + "key" : { + "name" : "Event0200", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "Event0200", + "version" : "0.0.1" + }, + "UUID" : "7be89b0e-07a6-38fe-a8fb-94f3f3473883", + "description" : "Generated description for concept referred to by key \"Event0200:0.0.1\"" + } + }, { + "key" : { + "name" : "Event0201", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "Event0201", + "version" : "0.0.1" + }, + "UUID" : "a44bcbd7-c30e-3a78-a9be-3cd3cecf1c93", + "description" : "Generated description for concept referred to by key \"Event0201:0.0.1\"" + } + }, { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel", + "version" : "0.0.1" + }, + "UUID" : "08ff4009-748a-3b9c-90f8-a4ac19ebb472", + "description" : "Generated description for concept referred to by key \"ExecutionPropertiesRestTestPolicyModel:0.0.1\"" + } + }, { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Events", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Events", + "version" : "0.0.1" + }, + "UUID" : "afe732b9-baff-3235-a75c-29a0669b0d1d", + "description" : "Generated description for concept referred to by key \"ExecutionPropertiesRestTestPolicyModel_Events:0.0.1\"" + } + }, { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_KeyInfo", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_KeyInfo", + "version" : "0.0.1" + }, + "UUID" : "9ec07b81-7488-3b33-907e-335256c96e08", + "description" : "Generated description for concept referred to by key \"ExecutionPropertiesRestTestPolicyModel_KeyInfo:0.0.1\"" + } + }, { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Policies", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Policies", + "version" : "0.0.1" + }, + "UUID" : "c1df0d76-7445-32ca-914f-06167254fbce", + "description" : "Generated description for concept referred to by key \"ExecutionPropertiesRestTestPolicyModel_Policies:0.0.1\"" + } + }, { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Schemas", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Schemas", + "version" : "0.0.1" + }, + "UUID" : "9984fed6-9ec5-3c69-a458-5033767f00f1", + "description" : "Generated description for concept referred to by key \"ExecutionPropertiesRestTestPolicyModel_Schemas:0.0.1\"" + } + }, { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Tasks", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Tasks", + "version" : "0.0.1" + }, + "UUID" : "08f87bf9-4056-30de-8c4e-179f06bdaabb", + "description" : "Generated description for concept referred to by key \"ExecutionPropertiesRestTestPolicyModel_Tasks:0.0.1\"" + } + }, { + "key" : { + "name" : "Policy2", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "Policy2", + "version" : "0.0.1" + }, + "UUID" : "9d2804df-f77d-3018-a024-5c6f7fd8e60e", + "description" : "Generated description for concept referred to by key \"Policy2:0.0.1\"" + } + }, { + "key" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "UUID" : "8a4957cf-9493-3a76-8c22-a208e23259af", + "description" : "Generated description for concept referred to by key \"SimpleStringType:0.0.1\"" + } + }, { + "key" : { + "name" : "TaskFetchHttpCode", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "TaskFetchHttpCode", + "version" : "0.0.1" + }, + "UUID" : "0a776ac8-cc11-37a5-8f40-7262a31ada0a", + "description" : "Generated description for concept referred to by key \"TaskFetchHttpCode:0.0.1\"" + } + }, { + "key" : { + "name" : "TaskTagUrl", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "TaskTagUrl", + "version" : "0.0.1" + }, + "UUID" : "638c559b-dc94-3d71-bdb0-c4bdeb042de3", + "description" : "Generated description for concept referred to by key \"TaskTagUrl:0.0.1\"" + } + } ] + } + }, + "policies" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Policies", + "version" : "0.0.1" + }, + "policyMap" : { + "entry" : [ { + "key" : { + "name" : "Policy2", + "version" : "0.0.1" + }, + "value" : { + "policyKey" : { + "name" : "Policy2", + "version" : "0.0.1" + }, + "template" : "freestyle", + "state" : { + "entry" : [ { + "key" : "Decide", + "value" : { + "stateKey" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "NULL", + "localName" : "Decide" + }, + "trigger" : { + "name" : "Event0201", + "version" : "0.0.1" + }, + "stateOutputs" : { + "entry" : [ { + "key" : "TagUrlOut", + "value" : { + "key" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "Decide", + "localName" : "TagUrlOut" + }, + "outgoingEvent" : { + "name" : "Event0201", + "version" : "0.0.1" + }, + "nextState" : { + "parentKeyName" : "NULL", + "parentKeyVersion" : "0.0.0", + "parentLocalName" : "NULL", + "localName" : "NULL" + } + } + } ] + }, + "contextAlbumReference" : [ ], + "taskSelectionLogic" : { + "key" : "NULL", + "logicFlavour" : "UNDEFINED", + "logic" : "" + }, + "stateFinalizerLogicMap" : { + "entry" : [ ] + }, + "defaultTask" : { + "name" : "TaskTagUrl", + "version" : "0.0.1" + }, + "taskReferences" : { + "entry" : [ { + "key" : { + "name" : "TaskTagUrl", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "Decide", + "localName" : "tag" + }, + "outputType" : "DIRECT", + "output" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "Decide", + "localName" : "TagUrlOut" + } + } + } ] + } + } + }, { + "key" : "Junit", + "value" : { + "stateKey" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "NULL", + "localName" : "Junit" + }, + "trigger" : { + "name" : "Event0200", + "version" : "0.0.1" + }, + "stateOutputs" : { + "entry" : [ { + "key" : "HttpCodeOut", + "value" : { + "key" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "Junit", + "localName" : "HttpCodeOut" + }, + "outgoingEvent" : { + "name" : "Event0201", + "version" : "0.0.1" + }, + "nextState" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "NULL", + "localName" : "Decide" + } + } + } ] + }, + "contextAlbumReference" : [ ], + "taskSelectionLogic" : { + "key" : "NULL", + "logicFlavour" : "UNDEFINED", + "logic" : "" + }, + "stateFinalizerLogicMap" : { + "entry" : [ ] + }, + "defaultTask" : { + "name" : "TaskFetchHttpCode", + "version" : "0.0.1" + }, + "taskReferences" : { + "entry" : [ { + "key" : { + "name" : "TaskFetchHttpCode", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "Junit", + "localName" : "check" + }, + "outputType" : "DIRECT", + "output" : { + "parentKeyName" : "Policy2", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "Junit", + "localName" : "HttpCodeOut" + } + } + } ] + } + } + } ] + }, + "firstState" : "Junit" + } + } ] + } + }, + "tasks" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Tasks", + "version" : "0.0.1" + }, + "taskMap" : { + "entry" : [ { + "key" : { + "name" : "TaskFetchHttpCode", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "TaskFetchHttpCode", + "version" : "0.0.1" + }, + "inputFields" : { + "entry" : [ { + "key" : "testToRun", + "value" : { + "key" : "testToRun", + "fieldSchemaKey" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + }, + "outputFields" : { + "entry" : [ { + "key" : "testToRun", + "value" : { + "key" : "testToRun", + "fieldSchemaKey" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + }, + "taskParameters" : { + "entry" : [ ] + }, + "contextAlbumReference" : [ ], + "taskLogic" : { + "key" : "TaskLogic", + "logicFlavour" : "JAVASCRIPT", + "logic" : "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2019 Nordix Foundation.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\nexecutor.logger.info(executor.inFields);\n\nexecutor.logger.info(executor.outFields);\n\nexecutor.logger.info(\"executionProperties:\" + executor.getExecutionProperties());\n\nif (executor.getExecutionProperties() == \"{HTTP_CODE_STATUS=500}\" )\nexecutor.outFields.put(\"testToRun\", \"CodeFilterSet\");\nelse\nexecutor.outFields.put(\"testToRun\", \"CodeFilterDefault\");\n\nvar returnValue = executor.isTrue;" + } + } + }, { + "key" : { + "name" : "TaskTagUrl", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "TaskTagUrl", + "version" : "0.0.1" + }, + "inputFields" : { + "entry" : [ { + "key" : "testToRun", + "value" : { + "key" : "testToRun", + "fieldSchemaKey" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + }, + "outputFields" : { + "entry" : [ { + "key" : "testToRun", + "value" : { + "key" : "testToRun", + "fieldSchemaKey" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + }, + "taskParameters" : { + "entry" : [ ] + }, + "contextAlbumReference" : [ ], + "taskLogic" : { + "key" : "TaskLogic", + "logicFlavour" : "JAVASCRIPT", + "logic" : "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2019 Nordix Foundation.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\nexecutor.logger.info(executor.inFields);\n\nexecutor.logger.info(executor.outFields);\n\nexecutor.logger.info(\"executionProperties in:\" + executor.getExecutionProperties());\n\nexecutor.getExecutionProperties().setProperty(\"tagId\", executor.inFields.get(\"testToRun\"));\nexecutor.getExecutionProperties().setProperty(\"value\", \"3\");\n\nexecutor.logger.info(\"executionProperties out:\" + executor.getExecutionProperties());\n\nvar returnValue = executor.isTrue;" + } + } + } ] + } + }, + "events" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Events", + "version" : "0.0.1" + }, + "eventMap" : { + "entry" : [ { + "key" : { + "name" : "Event0200", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "Event0200", + "version" : "0.0.1" + }, + "nameSpace" : "org.onap.policy.apex.domains.test", + "source" : "Junit", + "target" : "Decide", + "parameter" : { + "entry" : [ { + "key" : "testToRun", + "value" : { + "key" : "testToRun", + "fieldSchemaKey" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + } + } + }, { + "key" : { + "name" : "Event0201", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "Event0201", + "version" : "0.0.1" + }, + "nameSpace" : "org.onap.policy.apex.domains.test", + "source" : "Decide", + "target" : "OutSide", + "parameter" : { + "entry" : [ { + "key" : "testToRun", + "value" : { + "key" : "testToRun", + "fieldSchemaKey" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + } + } + } ] + } + }, + "schemas" : { + "key" : { + "name" : "ExecutionPropertiesRestTestPolicyModel_Schemas", + "version" : "0.0.1" + }, + "schemas" : { + "entry" : [ { + "key" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SimpleStringType", + "version" : "0.0.1" + }, + "schemaFlavour" : "Java", + "schemaDefinition" : "java.lang.String" + } + } ] + } + } + } +} diff --git a/tools/model-generator/src/test/resources/SmallModel.json b/tools/model-generator/src/test/resources/SmallModel.json new file mode 100644 index 000000000..5c0628809 --- /dev/null +++ b/tools/model-generator/src/test/resources/SmallModel.json @@ -0,0 +1,416 @@ +{ + "apexPolicyModel" : { + "key" : { + "name" : "SmallModel", + "version" : "0.0.1" + }, + "keyInformation" : { + "key" : { + "name" : "SmallModel_KeyInfo", + "version" : "0.0.1" + }, + "keyInfoMap" : { + "entry" : [ { + "key" : { + "name" : "BasicContextAlbum", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "BasicContextAlbum", + "version" : "0.0.1" + }, + "UUID" : "fec1b353-b35f-4384-b7d9-69622059c248", + "description" : "Generated description for a concept called \"BasicContextAlbum\" with version \"0.0.1\" and UUID \"fec1b353-b35f-4384-b7d9-69622059c248\"" + } + }, { + "key" : { + "name" : "BasicEvent", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "BasicEvent", + "version" : "0.0.1" + }, + "UUID" : "cc8d3c1a-e975-459a-bcd2-69f423eaa1f3", + "description" : "Generated description for a concept called \"BasicEvent\" with version \"0.0.1\" and UUID \"cc8d3c1a-e975-459a-bcd2-69f423eaa1f3\"" + } + }, { + "key" : { + "name" : "BasicPolicy", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "BasicPolicy", + "version" : "0.0.1" + }, + "UUID" : "d0c5d8ee-5fe7-4978-89ce-4a3e69cad043", + "description" : "Generated description for a concept called \"BasicPolicy\" with version \"0.0.1\" and UUID \"d0c5d8ee-5fe7-4978-89ce-4a3e69cad043\"" + } + }, { + "key" : { + "name" : "BasicTask", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "BasicTask", + "version" : "0.0.1" + }, + "UUID" : "c5651414-fc1c-493b-878d-75f0ce685c36", + "description" : "Generated description for a concept called \"BasicTask\" with version \"0.0.1\" and UUID \"c5651414-fc1c-493b-878d-75f0ce685c36\"" + } + }, { + "key" : { + "name" : "IntType", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "IntType", + "version" : "0.0.1" + }, + "UUID" : "790ff718-8dc0-44e0-89d8-1b3bbe238310", + "description" : "Generated description for a concept called \"IntType\" with version \"0.0.1\" and UUID \"790ff718-8dc0-44e0-89d8-1b3bbe238310\"" + } + }, { + "key" : { + "name" : "SmallModel", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SmallModel", + "version" : "0.0.1" + }, + "UUID" : "a1bd1f4e-713b-456b-b1a8-bb48beee28e8", + "description" : "Generated description for a concept called \"SmallModel\" with version \"0.0.1\" and UUID \"a1bd1f4e-713b-456b-b1a8-bb48beee28e8\"" + } + }, { + "key" : { + "name" : "SmallModel_Albums", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SmallModel_Albums", + "version" : "0.0.1" + }, + "UUID" : "72bed9af-ab7d-3379-b9f7-b5eca5c9ef22", + "description" : "Generated description for concept referred to by key \"SmallModel_Albums:0.0.1\"" + } + }, { + "key" : { + "name" : "SmallModel_Events", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SmallModel_Events", + "version" : "0.0.1" + }, + "UUID" : "796dc6b0-627d-34ae-a5e2-1bc4b4b486b8", + "description" : "Generated description for concept referred to by key \"SmallModel_Events:0.0.1\"" + } + }, { + "key" : { + "name" : "SmallModel_KeyInfo", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SmallModel_KeyInfo", + "version" : "0.0.1" + }, + "UUID" : "b4876774-6907-3d27-a2b8-f05737c5ee4a", + "description" : "Generated description for concept referred to by key \"SmallModel_KeyInfo:0.0.1\"" + } + }, { + "key" : { + "name" : "SmallModel_Policies", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SmallModel_Policies", + "version" : "0.0.1" + }, + "UUID" : "5bcf946b-67be-3190-a906-f954896f999f", + "description" : "Generated description for concept referred to by key \"SmallModel_Policies:0.0.1\"" + } + }, { + "key" : { + "name" : "SmallModel_Schemas", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SmallModel_Schemas", + "version" : "0.0.1" + }, + "UUID" : "c25bf5c3-7f1e-3667-b8a9-971ba21517bc", + "description" : "Generated description for concept referred to by key \"SmallModel_Schemas:0.0.1\"" + } + }, { + "key" : { + "name" : "SmallModel_Tasks", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "SmallModel_Tasks", + "version" : "0.0.1" + }, + "UUID" : "43b015ca-2ed1-3a35-b103-e8a5aa68f1ef", + "description" : "Generated description for concept referred to by key \"SmallModel_Tasks:0.0.1\"" + } + } ] + } + }, + "policies" : { + "key" : { + "name" : "SmallModel_Policies", + "version" : "0.0.1" + }, + "policyMap" : { + "entry" : [ { + "key" : { + "name" : "BasicPolicy", + "version" : "0.0.1" + }, + "value" : { + "policyKey" : { + "name" : "BasicPolicy", + "version" : "0.0.1" + }, + "template" : "FREEFORM", + "state" : { + "entry" : [ { + "key" : "OnlyState", + "value" : { + "stateKey" : { + "parentKeyName" : "BasicPolicy", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "NULL", + "localName" : "OnlyState" + }, + "trigger" : { + "name" : "BasicEvent", + "version" : "0.0.1" + }, + "stateOutputs" : { + "entry" : [ { + "key" : "OnlyOutput", + "value" : { + "key" : { + "parentKeyName" : "BasicPolicy", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "OnlyState", + "localName" : "OnlyOutput" + }, + "outgoingEvent" : { + "name" : "BasicEvent", + "version" : "0.0.1" + }, + "nextState" : { + "parentKeyName" : "NULL", + "parentKeyVersion" : "0.0.0", + "parentLocalName" : "NULL", + "localName" : "NULL" + } + } + } ] + }, + "contextAlbumReference" : [ { + "name" : "BasicContextAlbum", + "version" : "0.0.1" + } ], + "taskSelectionLogic" : { + "key" : "NULL", + "logicFlavour" : "UNDEFINED", + "logic" : "" + }, + "stateFinalizerLogicMap" : { + "entry" : [ ] + }, + "defaultTask" : { + "name" : "BasicTask", + "version" : "0.0.1" + }, + "taskReferences" : { + "entry" : [ { + "key" : { + "name" : "BasicTask", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "parentKeyName" : "BasicPolicy", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "OnlyState", + "localName" : "BasicTask" + }, + "outputType" : "DIRECT", + "output" : { + "parentKeyName" : "BasicPolicy", + "parentKeyVersion" : "0.0.1", + "parentLocalName" : "OnlyState", + "localName" : "OnlyOutput" + } + } + } ] + } + } + } ] + }, + "firstState" : "OnlyState" + } + } ] + } + }, + "tasks" : { + "key" : { + "name" : "SmallModel_Tasks", + "version" : "0.0.1" + }, + "taskMap" : { + "entry" : [ { + "key" : { + "name" : "BasicTask", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "BasicTask", + "version" : "0.0.1" + }, + "inputFields" : { + "entry" : [ { + "key" : "intPar", + "value" : { + "key" : "intPar", + "fieldSchemaKey" : { + "name" : "IntType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + }, + "outputFields" : { + "entry" : [ { + "key" : "intPar", + "value" : { + "key" : "intPar", + "fieldSchemaKey" : { + "name" : "IntType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + }, + "taskParameters" : { + "entry" : [ ] + }, + "contextAlbumReference" : [ { + "name" : "BasicContextAlbum", + "version" : "0.0.1" + } ], + "taskLogic" : { + "key" : "TaskLogic", + "logicFlavour" : "JAVASCRIPT", + "logic" : "executor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"BasicContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;" + } + } + } ] + } + }, + "events" : { + "key" : { + "name" : "SmallModel_Events", + "version" : "0.0.1" + }, + "eventMap" : { + "entry" : [ { + "key" : { + "name" : "BasicEvent", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "BasicEvent", + "version" : "0.0.1" + }, + "nameSpace" : "org.onap.policy.apex.events", + "source" : "source", + "target" : "target", + "parameter" : { + "entry" : [ { + "key" : "intPar", + "value" : { + "key" : "intPar", + "fieldSchemaKey" : { + "name" : "IntType", + "version" : "0.0.1" + }, + "optional" : false + } + } ] + } + } + } ] + } + }, + "albums" : { + "key" : { + "name" : "SmallModel_Albums", + "version" : "0.0.1" + }, + "albums" : { + "entry" : [ { + "key" : { + "name" : "BasicContextAlbum", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "BasicContextAlbum", + "version" : "0.0.1" + }, + "scope" : "GLOBAL", + "isWritable" : true, + "itemSchema" : { + "name" : "IntType", + "version" : "0.0.1" + } + } + } ] + } + }, + "schemas" : { + "key" : { + "name" : "SmallModel_Schemas", + "version" : "0.0.1" + }, + "schemas" : { + "entry" : [ { + "key" : { + "name" : "IntType", + "version" : "0.0.1" + }, + "value" : { + "key" : { + "name" : "IntType", + "version" : "0.0.1" + }, + "schemaFlavour" : "Java", + "schemaDefinition" : "java.lang.Integer" + } + } ] + } + } + } +} diff --git a/tools/model-generator/src/test/resources/blankSchema.json b/tools/model-generator/src/test/resources/blankSchema.json new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tools/model-generator/src/test/resources/blankSchema.json |