diff options
Diffstat (limited to 'test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaTypesDefinitionUtils.java')
-rw-r--r-- | test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaTypesDefinitionUtils.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaTypesDefinitionUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaTypesDefinitionUtils.java new file mode 100644 index 0000000000..4af84a7d4e --- /dev/null +++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaTypesDefinitionUtils.java @@ -0,0 +1,54 @@ +package org.openecomp.sdc.ci.tests.utils; + +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaAnnotationsTypesDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaParameterConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.constructor.Constructor; + +import static org.junit.Assert.assertNotNull; +import static org.openecomp.sdc.ci.tests.utils.CsarParserUtils.downloadComponentCsar; +import static org.openecomp.sdc.ci.tests.utils.ToscaParserUtils.getDataFromZipFileByBytes; +import static org.testng.AssertJUnit.fail; + +public class ToscaTypesDefinitionUtils { + + private ToscaTypesDefinitionUtils() { + } + + private static final String ANNOTATIONS_TYPE_PATH = ToscaParameterConstants.TOSCA_DEFINITION_PATH + "/annotations.yml"; + private static Logger log = LoggerFactory.getLogger(ToscaTypesDefinitionUtils.class); + + public static ToscaAnnotationsTypesDefinition getToscaAnnotationsFromCsar(Component csarOwner, User user) throws Exception { + byte[] decodeBase64 = downloadComponentCsar(csarOwner, user); + String dataFromZipFileByBytes = getDataFromZipFileByBytes(ANNOTATIONS_TYPE_PATH, decodeBase64); + assertNotNull(dataFromZipFileByBytes); + return parseToscaAnnotationsYml(dataFromZipFileByBytes); + } + + private static ToscaAnnotationsTypesDefinition parseToscaAnnotationsYml(String payload){ + Constructor constructor = initToscaAnnotationDefObject(); + return (ToscaAnnotationsTypesDefinition) parseToscaYamlPayload(payload, constructor); + } + + private static Object parseToscaYamlPayload(String payload, Constructor constructor) { + Yaml yaml = new Yaml(constructor); + try { + return yaml.load(payload); + } catch (Exception e) { + log.debug("Failed to parse tosca yaml file", e); + e.printStackTrace(); + fail("Failed to parse tosca yaml file"); + } + return null; + } + + private static Constructor initToscaAnnotationDefObject() { + Constructor toscaStructure = new Constructor(ToscaAnnotationsTypesDefinition.class); + toscaStructure.addTypeDescription(ToscaAnnotationsTypesDefinition.getTypeDescription()); + return toscaStructure; + } +} |