From bd591af78a4ab97af4f65d6b7094d9c60f7879c4 Mon Sep 17 00:00:00 2001 From: "waqas.ikram" Date: Mon, 23 Jan 2023 11:58:29 +0000 Subject: Adding common classes for workflows Change-Id: Id86256ee21ee8c78da82ae3141f7936191593597 Issue-ID: SO-4068 Signed-off-by: waqas.ikram --- .../extclients/sdc/SdcCsarPackageParserTest.java | 83 +++++++++++++++++++++ .../flows/utils/LocalDateTimeTypeAdapterTest.java | 64 ++++++++++++++++ .../flows/utils/OffsetDateTimeTypeAdapterTest.java | 66 ++++++++++++++++ .../flows/utils/PropertiesToYamlConverterTest.java | 45 +++++++++++ .../src/test/resources/application.yaml | 52 +++++++++++++ .../src/test/resources/request.json | 25 +++++++ .../resource-Generatedasdpackage-csar.csar | Bin 0 -> 72173 bytes 7 files changed, 335 insertions(+) create mode 100644 so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/extclients/sdc/SdcCsarPackageParserTest.java create mode 100644 so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/LocalDateTimeTypeAdapterTest.java create mode 100644 so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/OffsetDateTimeTypeAdapterTest.java create mode 100644 so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/PropertiesToYamlConverterTest.java create mode 100644 so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/application.yaml create mode 100644 so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/request.json create mode 100644 so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/resource-Generatedasdpackage-csar.csar (limited to 'so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test') diff --git a/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/extclients/sdc/SdcCsarPackageParserTest.java b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/extclients/sdc/SdcCsarPackageParserTest.java new file mode 100644 index 0000000..7de9bdc --- /dev/null +++ b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/extclients/sdc/SdcCsarPackageParserTest.java @@ -0,0 +1,83 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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.so.cnfm.lcm.bpmn.flows.extclients.sdc; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.onap.so.cnfm.lcm.bpmn.flows.extclients.sdc.SdcCsarPropertiesConstants.APPLICATION_NAME_PARAM_NAME; +import static org.onap.so.cnfm.lcm.bpmn.flows.extclients.sdc.SdcCsarPropertiesConstants.DESCRIPTOR_ID_PARAM_NAME; +import static org.onap.so.cnfm.lcm.bpmn.flows.extclients.sdc.SdcCsarPropertiesConstants.DESCRIPTOR_INVARIANT_ID_PARAM_NAME; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +/** + * + * @author Waqas Ikram (waqas.ikram@est.tech) + * + */ +public class SdcCsarPackageParserTest { + + private static final String RESOURCE_ASD_PACKAGE_CSAR_PATH = + "src/test/resources/resource-Generatedasdpackage-csar.csar"; + + @Test + public void testResourceAsdCsar() throws IOException { + final SdcCsarPackageParser objUnderTest = new SdcCsarPackageParser(); + + final byte[] content = getFileContent(Paths.get(getAbsolutePath(RESOURCE_ASD_PACKAGE_CSAR_PATH))); + + final Map properties = objUnderTest.getAsdProperties(content); + assertEquals("123e4567-e89b-12d3-a456-426614174000", properties.get(DESCRIPTOR_ID_PARAM_NAME)); + assertEquals("123e4yyy-e89b-12d3-a456-426614174abc", properties.get(DESCRIPTOR_INVARIANT_ID_PARAM_NAME)); + assertEquals("SampleApp", properties.get(APPLICATION_NAME_PARAM_NAME)); + assertEquals("2.3", properties.get(SdcCsarPropertiesConstants.APPLICATION_VERSION_PARAM_NAME)); + assertEquals("MyCompany", properties.get(SdcCsarPropertiesConstants.PROVIDER_PARAM_NAME)); + + @SuppressWarnings("unchecked") + final List items = + (List) properties.get(SdcCsarPropertiesConstants.DEPLOYMENT_ITEMS_PARAM_NAME); + assertNotNull(items); + assertTrue(items.size() == 2); + + DeploymentItem deploymentItem = items.get(0); + assertEquals("sampleapp-db", deploymentItem.getName()); + assertEquals("1", deploymentItem.getItemId()); + assertEquals("1", deploymentItem.getDeploymentOrder()); + assertEquals("Artifacts/Deployment/HELM/sampleapp-db-operator-helm.tgz", deploymentItem.getFile()); + + + } + + private String getAbsolutePath(final String path) { + final File file = new File(path); + return file.getAbsolutePath(); + } + + private byte[] getFileContent(final Path path) throws IOException { + return Files.readAllBytes(path); + } +} diff --git a/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/LocalDateTimeTypeAdapterTest.java b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/LocalDateTimeTypeAdapterTest.java new file mode 100644 index 0000000..3015d87 --- /dev/null +++ b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/LocalDateTimeTypeAdapterTest.java @@ -0,0 +1,64 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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.so.cnfm.lcm.bpmn.flows.utils; + +import static org.junit.Assert.assertEquals; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.io.StringWriter; +import java.time.LocalDateTime; +import org.junit.Test; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * + * @author Waqas Ikram (waqas.ikram@est.tech) + * + */ +public class LocalDateTimeTypeAdapterTest { + private static final LocalDateTime LOCAL_DATETIME_VALUE = LocalDateTime.of(2023, 1, 1, 12, 0, 15); + private static final String STRING_VALUE = "\"2023-01-01 12:00:15\""; + + @Test + public void testReadWithValidLocalDateTimeString() throws IOException { + final LocalDateTimeTypeAdapter objUnderTest = new LocalDateTimeTypeAdapter(); + + final Reader reader = new StringReader(STRING_VALUE); + final JsonReader jsonReader = new JsonReader(reader); + + final LocalDateTime actual = objUnderTest.read(jsonReader); + assertEquals(LOCAL_DATETIME_VALUE, actual); + + } + + @Test + public void testWritedWithValidLocalDateTime() throws IOException { + final LocalDateTimeTypeAdapter objUnderTest = new LocalDateTimeTypeAdapter(); + + final StringWriter writer = new StringWriter(); + final JsonWriter jsonWriter = new JsonWriter(writer); + + objUnderTest.write(jsonWriter, LOCAL_DATETIME_VALUE); + assertEquals(STRING_VALUE, writer.toString()); + + } +} diff --git a/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/OffsetDateTimeTypeAdapterTest.java b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/OffsetDateTimeTypeAdapterTest.java new file mode 100644 index 0000000..0adbef0 --- /dev/null +++ b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/OffsetDateTimeTypeAdapterTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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.so.cnfm.lcm.bpmn.flows.utils; + +import static org.junit.Assert.assertEquals; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.io.StringWriter; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import org.junit.Test; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * + * @author Waqas Ikram (waqas.ikram@est.tech) + * + */ +public class OffsetDateTimeTypeAdapterTest { + private static final OffsetDateTime OFF_SET_DATETIME_VALUE = + OffsetDateTime.of(2023, 1, 1, 12, 00, 15, 0, ZoneOffset.UTC); + private static final String STRING_VALUE = "\"2023-01-01T12:00:15Z\""; + + @Test + public void testReadWithValidOffsetDateTimeString() throws IOException { + final OffsetDateTimeTypeAdapter objUnderTest = new OffsetDateTimeTypeAdapter(); + + final Reader reader = new StringReader(STRING_VALUE); + final JsonReader jsonReader = new JsonReader(reader); + + final OffsetDateTime actual = objUnderTest.read(jsonReader); + assertEquals(OFF_SET_DATETIME_VALUE, actual); + + } + + @Test + public void testWritedWithValidOffsetDateTime() throws IOException { + final OffsetDateTimeTypeAdapter objUnderTest = new OffsetDateTimeTypeAdapter(); + + final StringWriter writer = new StringWriter(); + final JsonWriter jsonWriter = new JsonWriter(writer); + + objUnderTest.write(jsonWriter, OFF_SET_DATETIME_VALUE); + assertEquals(STRING_VALUE, writer.toString()); + + } +} diff --git a/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/PropertiesToYamlConverterTest.java b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/PropertiesToYamlConverterTest.java new file mode 100644 index 0000000..2410d73 --- /dev/null +++ b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/java/org/onap/so/cnfm/lcm/bpmn/flows/utils/PropertiesToYamlConverterTest.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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.so.cnfm.lcm.bpmn.flows.utils; + +import static org.junit.Assert.assertEquals; +import java.util.Map; +import org.junit.Test; + +/** + * + * @author Waqas Ikram (waqas.ikram@est.tech) + * + */ +public class PropertiesToYamlConverterTest { + + @Test + public void testGetValuesYamlFileContent() { + final String expected = "primary:\n" + " service:\n" + " nodePorts:\n" + " mysql: '1234'\n" + + " ports:\n" + " mysql: dummy\n"; + final PropertiesToYamlConverter objUnderTest = new PropertiesToYamlConverter(); + final Map lifeCycleParams = + Map.of("primary.service.ports.mysql", "dummy", "primary.service.nodePorts.mysql", "1234"); + final String actual = objUnderTest.getValuesYamlFileContent(lifeCycleParams); + + assertEquals(expected, actual); + + } +} diff --git a/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/application.yaml b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/application.yaml new file mode 100644 index 0000000..404bbdb --- /dev/null +++ b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/application.yaml @@ -0,0 +1,52 @@ +# Copyright © 2022 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. +spring: + main: + allow-bean-definition-overriding: true + datasource: + hikari: + camunda: + jdbcUrl: jdbc:h2:mem:example-simple;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + driver-class-name: org.h2.Driver + pool-name: cnfm-lcm-bpmn-pool + registerMbeans: true + cnfm: + jdbcUrl: jdbc:h2:mem:nfvo;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS cnfm;MODE=MYSQL;DATABASE_TO_LOWER=TRUE;CASE_INSENSITIVE_IDENTIFIERS=TRUE + driver-class-name: org.h2.Driver + pool-name: cnfm-lcm-bpmn-pool + registerMbeans: true + jpa: + generate-ddl: true + hibernate: + ddl-auto: create +hibernate: + dialect: org.hibernate.dialect.H2Dialect + hbm2ddl: + auto: create +aai: + version: v19 + endpoint: http://localhost:${wiremock.server.port} +sdc: + endpoint: http://localhost:${wiremock.server.port} +logging: + level: + org.reflections.Reflections: ERROR +cnfm: + kube-configs-dir: ${java.io.tmpdir}/kube-configs + csar: + dir: ${java.io.tmpdir} +kubernetes: + client: + http-request: + timeoutSeconds: 1 \ No newline at end of file diff --git a/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/request.json b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/request.json new file mode 100644 index 0000000..042247f --- /dev/null +++ b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/request.json @@ -0,0 +1,25 @@ +{ + "deploymentItems": [ + { + "deploymentItemsId": "1", + "lifecycleParameterKeyValues": { + ".Values.primary.service.ports.mysql": "dummy", + ".Values.primary.service.nodePorts.mysql": "dummy" + } + }, + { + "deploymentItemsId": "2", + "lifecycleParameterKeyValues": { + + } + } + ], + "asdExtCpdInputParams": { + "extCpdId": null, + "loadbalanceIP": null, + "externalIPs": [], + "nadNames": [], + "nadNamespace": null + }, + "additionalParams": {} +} \ No newline at end of file diff --git a/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/resource-Generatedasdpackage-csar.csar b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/resource-Generatedasdpackage-csar.csar new file mode 100644 index 0000000..b3c629d Binary files /dev/null and b/so-cnfm/so-cnfm-lcm/so-cnfm-lcm-bpmn-flows/src/test/resources/resource-Generatedasdpackage-csar.csar differ -- cgit 1.2.3-korg