aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Determe <sebastien.determe@intl.att.com>2019-10-01 13:19:24 +0000
committerGerrit Code Review <gerrit@onap.org>2019-10-01 13:19:24 +0000
commita84a7c622ecb0574750038f35195b1534eda7abc (patch)
tree399f0d847a57828c08d6e63ee4e6c2377ce2cb83
parent200371009b84b9f6cfbd26816392a71e213dc3c5 (diff)
parent7c2f2b8262f7fac33ec288744051e97460551361 (diff)
Merge "Improve unit test coverage of ToscaYamlToJsonConvertor"
-rw-r--r--src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTest.java39
-rw-r--r--src/test/resources/tosca/policy-yaml-to-json-with-constraints.json63
-rw-r--r--src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json108
-rw-r--r--src/test/resources/tosca/tosca-with-constraints.yaml54
-rw-r--r--src/test/resources/tosca/tosca-with-datatypes.yaml63
5 files changed, 325 insertions, 2 deletions
diff --git a/src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTest.java b/src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTest.java
index 65b95a10..00c9b7d0 100644
--- a/src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTest.java
+++ b/src/test/java/org/onap/clamp/clds/tosca/ToscaYamlToJsonConvertorTest.java
@@ -4,6 +4,7 @@
* ================================================================================
* Copyright (C) 2018 AT&T Intellectual Property. All rights
* reserved.
+ * Modifications Copyright (C) 2019 Huawei Technologies Co., Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,8 +38,7 @@ public class ToscaYamlToJsonConvertorTest {
* This Test validates TOSCA yaml to JSON Schema conversion based on JSON Editor
* Schema.
*
- * @throws IOException
- *
+ * @throws IOException In case of issue when opening the tosca yaml file and converted json file
*/
@Test
public final void testParseToscaYaml() throws IOException {
@@ -50,4 +50,39 @@ public class ToscaYamlToJsonConvertorTest {
JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json.json"),
parsedJsonSchema, true);
}
+
+ /**
+ * This Test validates TOSCA yaml with constraints to JSON Schema conversion based on JSON Editor
+ * Schema.
+ *
+ * @throws IOException In case of issue when opening the tosca yaml file and converted json file
+ */
+ @Test
+ public final void testParseToscaYamlWithConstraints() throws IOException {
+ String toscaModelYaml = ResourceFileUtil.getResourceAsString("tosca/tosca-with-constraints.yaml");
+ ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor();
+
+ String parsedJsonSchema = convertor.parseToscaYaml(toscaModelYaml);
+ assertNotNull(parsedJsonSchema);
+ JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-constraints" +
+ ".json"),
+ parsedJsonSchema, true);
+ }
+
+ /**
+ * This Test validates TOSCA yaml with different datatypes to JSON Schema conversion based on JSON Editor
+ * Schema.
+ *
+ * @throws IOException In case of issue when opening the tosca yaml file and converted json file
+ */
+ @Test
+ public final void testParseToscaYamlWithTypes() throws IOException {
+ String toscaModelYaml = ResourceFileUtil.getResourceAsString("tosca/tosca-with-datatypes.yaml");
+ ToscaYamlToJsonConvertor convertor = new ToscaYamlToJsonConvertor();
+
+ String parsedJsonSchema = convertor.parseToscaYaml(toscaModelYaml);
+ assertNotNull(parsedJsonSchema);
+ JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/policy-yaml-to-json-with-datatypes.json"),
+ parsedJsonSchema, true);
+ }
}
diff --git a/src/test/resources/tosca/policy-yaml-to-json-with-constraints.json b/src/test/resources/tosca/policy-yaml-to-json-with-constraints.json
new file mode 100644
index 00000000..b2575486
--- /dev/null
+++ b/src/test/resources/tosca/policy-yaml-to-json-with-constraints.json
@@ -0,0 +1,63 @@
+{
+ "schema": {
+ "uniqueItems": "true",
+ "format": "tabs-top",
+ "type": "array",
+ "title": "Properties with constraints",
+ "items": {
+ "type": "object",
+ "title": "Properties with constraints",
+ "required": [
+ "cpus",
+ "memSize"
+ ],
+ "properties": {
+ "appPassword": {
+ "propertyOrder": 1004,
+ "minLength": 6,
+ "title": "application password",
+ "type": "string",
+ "maxLength": 10
+ },
+ "cost": {
+ "exclusiveMaximum": 100.5,
+ "propertyOrder": 1005,
+ "type": "integer",
+ "exclusiveMinimum": 50.5
+ },
+ "keylength": {
+ "propertyOrder": 1007,
+ "type": "integer",
+ "enum": [
+ 128,
+ 256
+ ]
+ },
+ "cpus": {
+ "propertyOrder": 1001,
+ "default": 1,
+ "minLength": 1,
+ "type": "string",
+ "maxLength": 4
+ },
+ "ports": {
+ "propertyOrder": 1002,
+ "maximum": 9010,
+ "type": "integer",
+ "minimum": 9000
+ },
+ "memSize": {
+ "propertyOrder": 1003,
+ "maximum": 10,
+ "title": "memory size",
+ "type": "integer",
+ "minimum": 2
+ },
+ "algorithm": {
+ "propertyOrder": 1006,
+ "type": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json b/src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json
new file mode 100644
index 00000000..d470d928
--- /dev/null
+++ b/src/test/resources/tosca/policy-yaml-to-json-with-datatypes.json
@@ -0,0 +1,108 @@
+{
+ "schema": {
+ "uniqueItems": "true",
+ "format": "tabs-top",
+ "type": "array",
+ "title": "Properties with different types",
+ "items": {
+ "type": "object",
+ "title": "Properties with different types",
+ "required": [
+ "memSize"
+ ],
+ "properties": {
+ "cpus": {
+ "propertyOrder": 1001,
+ "uniqueItems": "true",
+ "format": "tabs-top",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "closedLoopControlName": {
+ "propertyOrder": 1002,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "domain": {
+ "propertyOrder": 1009,
+ "type": "object",
+ "required": [],
+ "properties": {
+ "closedLoopControlName": {
+ "propertyOrder": 1002,
+ "type": "string"
+ }
+ }
+ },
+ "thresholdValue": {
+ "propertyOrder": 1007,
+ "uniqueItems": "true",
+ "format": "select",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ports": {
+ "propertyOrder": 1003,
+ "type": "object",
+ "items": {
+ "type": "string"
+ }
+ },
+ "closedLoopEventStatus": {
+ "propertyOrder": 1004,
+ "type": "object",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "version": {
+ "propertyOrder": 1008,
+ "uniqueItems": "true",
+ "format": "tabs-top",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "closedLoopControlName": {
+ "propertyOrder": 1002,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "memSize": {
+ "propertyOrder": 1006,
+ "required": [],
+ "properties": {
+ "name": {
+ "propertyOrder": 20002,
+ "required": [
+ "severity"
+ ],
+ "properties": {
+ "severity": {
+ "propertyOrder": 20003,
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "direction": {
+ "propertyOrder": 1005,
+ "type": "object",
+ "items": {
+ "type": "integer"
+ }
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/src/test/resources/tosca/tosca-with-constraints.yaml b/src/test/resources/tosca/tosca-with-constraints.yaml
new file mode 100644
index 00000000..959bc483
--- /dev/null
+++ b/src/test/resources/tosca/tosca-with-constraints.yaml
@@ -0,0 +1,54 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+ onap.policies.Monitoring:
+ derived_from: tosca.policies.Root
+ description: a base policy type for all policies that governs monitoring provisioning
+ onap.policies.monitoring.example.app:
+ derived_from: onap.policies.Monitoring
+ version: 1.0.0
+ properties:
+ example_policy:
+ type: map
+ description: Properties with constraints
+ entry_schema:
+ type: onap.datatypes.monitoring.example_policy
+data_types:
+ onap.datatypes.monitoring.example_policy:
+ derived_from: tosca.datatypes.Root
+ properties:
+ cpus:
+ type: string
+ required: true
+ default: 1
+ constraints:
+ - in_range: [ 1, 4 ]
+ ports:
+ type: integer
+ constraints:
+ - in_range: [ 9000, 9010 ]
+ memSize:
+ type: integer
+ required: true
+ description: memory size
+ constraints:
+ - greater_or_equal: 2
+ - less_or_equal: 10
+ appPassword:
+ type: string
+ description: application password
+ constraints:
+ - min_length: 6
+ - max_length: 10
+ cost:
+ type: float
+ constraints:
+ - less_than: 100.50
+ - greater_than: 50.50
+ algorithm:
+ type: string
+ constraints:
+ - equal: aes
+ keylength:
+ type: integer
+ constraints:
+ - valid_values: [ 128, 256 ]
diff --git a/src/test/resources/tosca/tosca-with-datatypes.yaml b/src/test/resources/tosca/tosca-with-datatypes.yaml
new file mode 100644
index 00000000..61d5dbcc
--- /dev/null
+++ b/src/test/resources/tosca/tosca-with-datatypes.yaml
@@ -0,0 +1,63 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+ onap.policies.Monitoring:
+ derived_from: tosca.policies.Root
+ description: a base policy type for all policies that governs monitoring provisioning
+ onap.policies.monitoring.example.app:
+ derived_from: onap.policies.Monitoring
+ version: 1.0.0
+ properties:
+ example_policy:
+ type: map
+ description: Properties with different types
+ entry_schema:
+ type: onap.datatypes.monitoring.example_policy
+data_types:
+ onap.datatypes.monitoring.example2:
+ derived_from: tosca.datatypes.Root
+ properties:
+ closedLoopControlName:
+ type: string
+ onap.datatypes.monitoring.example3:
+ derived_from: tosca.datatypes.Root
+ properties:
+ name:
+ type: onap.datatypes.monitoring.example4
+ onap.datatypes.monitoring.example4:
+ derived_from: tosca.datatypes.Root
+ properties:
+ severity:
+ type: string
+ required: true
+ onap.datatypes.monitoring.example_policy:
+ derived_from: tosca.datatypes.Root
+ properties:
+ cpus:
+ type: list
+ entry_schema:
+ type: onap.datatypes.monitoring.example2
+ ports:
+ type: map
+ entry_schema:
+ type: string
+ closedLoopEventStatus:
+ type: map
+ entry_schema:
+ type: integer
+ direction:
+ type: map
+ entry_schema:
+ type: float
+ memSize:
+ type: onap.datatypes.monitoring.example3
+ required: true
+ thresholdValue:
+ type: list
+ entry_schema:
+ type: string
+ version:
+ type: list
+ entry_schema:
+ type: onap.datatypes.monitoring.example2
+ domain:
+ type: onap.datatypes.monitoring.example2 \ No newline at end of file