From cd6f933375c412c2f79a12e909821322d58a8499 Mon Sep 17 00:00:00 2001 From: "andre.schmid" Date: Wed, 29 Jan 2020 17:25:21 +0000 Subject: Configure a new Artifact Type Centralizes artifact configuration in one yaml entry. Allow the configuration of a new artifact type without the need of code changes. The configuration file now is used as a source of artifacts types instead the artifact type enum. The enum will be used as a source of base artifact types and also in hard coded business rules. Change-Id: Id0383d9fca9bce0519a4d52a4ecb3a68c8713f0f Issue-ID: SDC-2754 Signed-off-by: andre.schmid --- .../sdc/be/config/ArtifactConfigManager.java | 138 +++++++++++++++++++++ .../sdc/be/config/ArtifactConfiguration.java | 68 ++++++++++ .../org/openecomp/sdc/be/config/ComponentType.java | 36 ++++++ .../org/openecomp/sdc/be/config/Configuration.java | 66 +++------- .../openecomp/sdc/common/api/ArtifactTypeEnum.java | 91 ++++++++------ .../sdc/common/api/ArtifactTypeEnumTest.java | 47 +++---- 6 files changed, 331 insertions(+), 115 deletions(-) create mode 100644 common-app-api/src/main/java/org/openecomp/sdc/be/config/ArtifactConfigManager.java create mode 100644 common-app-api/src/main/java/org/openecomp/sdc/be/config/ArtifactConfiguration.java create mode 100644 common-app-api/src/main/java/org/openecomp/sdc/be/config/ComponentType.java (limited to 'common-app-api') diff --git a/common-app-api/src/main/java/org/openecomp/sdc/be/config/ArtifactConfigManager.java b/common-app-api/src/main/java/org/openecomp/sdc/be/config/ArtifactConfigManager.java new file mode 100644 index 0000000000..e3327cc696 --- /dev/null +++ b/common-app-api/src/main/java/org/openecomp/sdc/be/config/ArtifactConfigManager.java @@ -0,0 +1,138 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2020 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.openecomp.sdc.be.config; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; +import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; + +/** + * Singleton that manages the artifact type configuration + */ +public class ArtifactConfigManager { + + public static final ArtifactConfigManager INSTANCE = new ArtifactConfigManager(); + + private ArtifactConfigManager() { + + } + + public static ArtifactConfigManager getInstance() { + return INSTANCE; + } + + /** + * Find an artifact configuration by artifact type. + * + * @param type the artifact type + * @return the artifact configuration if the type exists + */ + public Optional find(final String type) { + final List artifactConfigurationList = getConfiguration(); + return artifactConfigurationList.stream() + .filter(artifactConfiguration -> artifactConfiguration.getType().equals(type)) + .findFirst(); + } + + /** + * Find an artifact configuration by artifact type, that supports the artifact category/group and component type. + * + * @param type the artifact type + * @param artifactGroup the artifact category/group + * @param componentType the component type + * @return the artifact configuration if it matches the provided filter + */ + public Optional find(final String type, final ArtifactGroupTypeEnum artifactGroup, + final ComponentType componentType) { + final ArtifactConfiguration artifactConfiguration = find(type).orElse(null); + if (artifactConfiguration == null) { + return Optional.empty(); + } + + final boolean hasCategory = artifactConfiguration.hasSupport(artifactGroup); + if (!hasCategory) { + return Optional.empty(); + } + final boolean hasComponentType = artifactConfiguration.hasSupport(componentType); + if (!hasComponentType) { + return Optional.empty(); + } + + return Optional.of(artifactConfiguration); + } + + /** + * Find all artifact configuration that supports an artifact category/group and a component type. + * + * @param artifactGroup the artifact group/category + * @param componentType the component type + * @return the artifact configurations that matches the filter + */ + public List findAll(final ArtifactGroupTypeEnum artifactGroup, + final ComponentType componentType) { + final List artifactConfigurationList = + ConfigurationManager.getConfigurationManager().getConfiguration().getArtifacts(); + + return artifactConfigurationList.stream() + .filter(artifactConfiguration1 -> + artifactConfiguration1.hasSupport(artifactGroup) && artifactConfiguration1.hasSupport(componentType)) + .collect(Collectors.toList()); + } + + /** + * Find all artifact configuration that supports an artifact category/group. + * + * @param artifactGroup the artifact category/group + * @return the artifact configurations that matches the filter + */ + public List findAll(final ArtifactGroupTypeEnum artifactGroup) { + final List artifactConfigurationList = + ConfigurationManager.getConfigurationManager().getConfiguration().getArtifacts(); + + return artifactConfigurationList.stream() + .filter(artifactConfiguration1 -> artifactConfiguration1.hasSupport(artifactGroup)) + .collect(Collectors.toList()); + } + + /** + * Find all artifact configuration that supports a component type. + * + * @param componentType the component type + * @return the artifact configurations that matches the filter + */ + public List findAll(final ComponentType componentType) { + final List artifactConfigurationList = + ConfigurationManager.getConfigurationManager().getConfiguration().getArtifacts(); + + return artifactConfigurationList.stream() + .filter(artifactConfiguration1 -> artifactConfiguration1.hasSupport(componentType)) + .collect(Collectors.toList()); + } + + /** + * Gets the artifact configuration list. + * + * @return the artifact configuration list. + */ + public List getConfiguration() { + return ConfigurationManager.getConfigurationManager().getConfiguration().getArtifacts(); + } +} diff --git a/common-app-api/src/main/java/org/openecomp/sdc/be/config/ArtifactConfiguration.java b/common-app-api/src/main/java/org/openecomp/sdc/be/config/ArtifactConfiguration.java new file mode 100644 index 0000000000..1656b4abb1 --- /dev/null +++ b/common-app-api/src/main/java/org/openecomp/sdc/be/config/ArtifactConfiguration.java @@ -0,0 +1,68 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2020 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.openecomp.sdc.be.config; + +import java.util.List; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.apache.commons.collections.CollectionUtils; +import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; + +/** + * Represents an artifact type configuration + */ +@Getter +@Setter +@ToString +public class ArtifactConfiguration { + + private String type; + private List categories; + private List componentTypes; + private List acceptedTypes; + private List resourceTypes; + + /** + * Checks if the configuration supports a component type. + * + * @param componentType the component type + * @return {@code true} if the component type is supported, {@code false} otherwise + */ + public boolean hasSupport(final ComponentType componentType) { + if (CollectionUtils.isEmpty(componentTypes)) { + return false; + } + return componentTypes.contains(componentType); + } + + /** + * Checks if the configuration supports an artifact group/category. + * + * @param groupType the artifact category/group type + * @return {@code true} if the artifact group/category is supported, {@code false} otherwise + */ + public boolean hasSupport(final ArtifactGroupTypeEnum groupType) { + if (CollectionUtils.isEmpty(categories)) { + return false; + } + return categories.contains(groupType); + } +} diff --git a/common-app-api/src/main/java/org/openecomp/sdc/be/config/ComponentType.java b/common-app-api/src/main/java/org/openecomp/sdc/be/config/ComponentType.java new file mode 100644 index 0000000000..2f28687620 --- /dev/null +++ b/common-app-api/src/main/java/org/openecomp/sdc/be/config/ComponentType.java @@ -0,0 +1,36 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2020 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.openecomp.sdc.be.config; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ComponentType { + + RESOURCE("Resource"), + SERVICE("Service"), + RESOURCE_INSTANCE("Resource Instance"), + SERVICE_INSTANCE("Service Instance"); + + private final String value; + +} diff --git a/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java b/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java index 0bc0707822..f9f4bc14ae 100644 --- a/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java +++ b/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java @@ -20,16 +20,15 @@ package org.openecomp.sdc.be.config; -import org.apache.commons.collections.map.CaseInsensitiveMap; -import org.openecomp.sdc.common.api.BasicConfiguration; +import static java.lang.String.format; +import static java.util.Collections.emptyMap; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; - -import static java.lang.String.format; -import static java.util.Collections.emptyMap; +import org.apache.commons.collections.map.CaseInsensitiveMap; +import org.openecomp.sdc.common.api.BasicConfiguration; public class Configuration extends BasicConfiguration { @@ -91,14 +90,9 @@ public class Configuration extends BasicConfiguration { private Map toscaArtifacts; private Map informationalResourceArtifacts; private Map informationalServiceArtifacts; - private Map resourceDeploymentArtifacts; - private Map serviceDeploymentArtifacts; - private Map resourceInstanceDeploymentArtifacts; - private Map resourceInformationalArtifacts; private Map serviceApiArtifacts; private List excludeServiceCategory; - private List artifactTypes; private List licenseTypes; private List definedResourceNamespace; @@ -161,6 +155,15 @@ public class Configuration extends BasicConfiguration { private EnvironmentContext environmentContext; private List gabConfig; private EcompPortalConfig ecompPortal; + private List artifacts; + + public List getArtifacts() { + return artifacts; + } + + public void setArtifacts(List artifacts) { + this.artifacts = artifacts; + } public String getAutoHealingOwner() { return autoHealingOwner; @@ -437,14 +440,6 @@ public class Configuration extends BasicConfiguration { this.janusGraphReconnectIntervalInSeconds = janusGraphReconnectIntervalInSeconds; } - public List getArtifactTypes() { - return artifactTypes; - } - - public void setArtifactTypes(List artifactTypes) { - this.artifactTypes = artifactTypes; - } - public List getExcludeResourceCategory() { return excludeResourceCategory; } @@ -509,31 +504,6 @@ public class Configuration extends BasicConfiguration { this.serviceApiArtifacts = serviceApiArtifacts; } - public Map getServiceDeploymentArtifacts() { - return serviceDeploymentArtifacts; - } - - public void setServiceDeploymentArtifacts(Map serviceDeploymentArtifacts) { - this.serviceDeploymentArtifacts = serviceDeploymentArtifacts; - } - - public Map getResourceDeploymentArtifacts() { - return resourceDeploymentArtifacts; - } - - public void setResourceDeploymentArtifacts(Map resourceDeploymentArtifacts) { - this.resourceDeploymentArtifacts = resourceDeploymentArtifacts; - } - - public void setResourceInstanceDeploymentArtifacts( - Map resourceInstanceDeploymentArtifacts) { - this.resourceInstanceDeploymentArtifacts = resourceInstanceDeploymentArtifacts; - } - - public Map getResourceInstanceDeploymentArtifacts() { - return resourceInstanceDeploymentArtifacts; - } - public List getExcludeServiceCategory() { return excludeServiceCategory; } @@ -1529,7 +1499,7 @@ public class Configuration extends BasicConfiguration { .append(format("informationalResourceArtifacts: %s%n", informationalResourceArtifacts)) .append(format("deploymentResourceArtifacts: %s%n", deploymentResourceArtifacts)) .append(format("informationalServiceArtifacts: %s%n", informationalServiceArtifacts)) - .append(format("Supported artifacts types: %s%n", artifactTypes)) + .append(format("Supported artifacts types: %s%n", artifacts)) .append(format("Supported license types: %s%n", licenseTypes)) .append(format("Additional information Maximum number of preoperties: %s%n", additionalInformationMaxNumberOfKeys)) @@ -1653,14 +1623,6 @@ public class Configuration extends BasicConfiguration { this.disableAudit = enableAudit; } - public Map getResourceInformationalArtifacts() { - return resourceInformationalArtifacts; - } - - public void setResourceInformationalArtifacts(Map resourceInformationalArtifacts) { - this.resourceInformationalArtifacts = resourceInformationalArtifacts; - } - public Map getVfModuleProperties() { return vfModuleProperties; } diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java b/common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java index 9d0ff1c083..affa2d32e0 100644 --- a/common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java +++ b/common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java @@ -7,9 +7,9 @@ * 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. @@ -20,50 +20,69 @@ package org.openecomp.sdc.common.api; -import java.util.ArrayList; -import java.util.List; import lombok.AllArgsConstructor; import lombok.Getter; /** - * Enum That Represents possible Artifacts Types. - * + * Represents an artifact type that is used for hard-coded type representation. All artifacts must be configured in the + * SDC configuration file. */ @Getter @AllArgsConstructor public enum ArtifactTypeEnum { - CHEF("CHEF"), PUPPET("PUPPET"), YANG("YANG"), SHELL_SCRIPT("SHELL_SCRIPT"), SHELL("SHELL"), ICON("ICON"), UNKNOWN("UNKNOWN"), HEAT("HEAT"), DG_XML("DG_XML"), MURANO_PKG("MURANO_PKG"), HEAT_ENV("HEAT_ENV"), YANG_XML("YANG_XML"), HEAT_VOL("HEAT_VOL"), - HEAT_NET("HEAT_NET"), OTHER("OTHER"), WORKFLOW("WORKFLOW"), NETWORK_CALL_FLOW("NETWORK_CALL_FLOW"), TOSCA_TEMPLATE("TOSCA_TEMPLATE"), TOSCA_CSAR("TOSCA_CSAR"), VNF_CATALOG("VNF_CATALOG"), VF_LICENSE("VF_LICENSE"), BPEL("BPEL"), - VENDOR_LICENSE("VENDOR_LICENSE"), MODEL_INVENTORY_PROFILE("MODEL_INVENTORY_PROFILE"), MODEL_QUERY_SPEC("MODEL_QUERY_SPEC"), APPC_CONFIG("APPC_CONFIG"), HEAT_NESTED("HEAT_NESTED"), HEAT_ARTIFACT("HEAT_ARTIFACT"), CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT("CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT"), - VF_MODULES_METADATA("VF_MODULES_METADATA"), LIFECYCLE_OPERATIONS("LIFECYCLE_OPERATIONS"), VES_EVENTS("VES_EVENTS"), PERFORMANCE_COUNTER("PERFORMANCE_COUNTER"),UCPE_LAYER_2_CONFIGURATION("UCPE_LAYER_2_CONFIGURATION"), - CONTROLLER_BLUEPRINT_ARCHIVE("CONTROLLER_BLUEPRINT_ARCHIVE"), - // DCAE Artifacts - DCAE_TOSCA("DCAE_TOSCA"), DCAE_JSON("DCAE_JSON"), DCAE_POLICY("DCAE_POLICY"), DCAE_DOC("DCAE_DOC"), DCAE_EVENT("DCAE_EVENT"), DCAE_INVENTORY_TOSCA("DCAE_INVENTORY_TOSCA"), DCAE_INVENTORY_JSON("DCAE_INVENTORY_JSON"), - DCAE_INVENTORY_POLICY("DCAE_INVENTORY_POLICY"), DCAE_INVENTORY_DOC("DCAE_INVENTORY_DOC"), DCAE_INVENTORY_BLUEPRINT("DCAE_INVENTORY_BLUEPRINT"), DCAE_INVENTORY_EVENT("DCAE_INVENTORY_EVENT"), - // AAI Artifacts - AAI_SERVICE_MODEL("AAI_SERVICE_MODEL"), AAI_VF_MODEL("AAI_VF_MODEL"), AAI_VF_MODULE_MODEL("AAI_VF_MODULE_MODEL"), AAI_VF_INSTANCE_MODEL("AAI_VF_INSTANCE_MODEL"), - // MIB artifacts - SNMP_POLL ("SNMP_POLL"), SNMP_TRAP("SNMP_TRAP"), GUIDE("GUIDE"), - PLAN("PLAN"), PM_DICTIONARY("PM_DICTIONARY"), YANG_MODULE("YANG_MODULE"), - ANSIBLE_PLAYBOOK("ANSIBLE_PLAYBOOK"), ONBOARDED_PACKAGE("ONBOARDED_PACKAGE"), PNF_SW_INFORMATION("PNF_SW_INFORMATION"); + AAI_SERVICE_MODEL("AAI_SERVICE_MODEL"), + ANSIBLE_PLAYBOOK("ANSIBLE_PLAYBOOK"), + CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT("CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT"), + DCAE_INVENTORY_JSON("DCAE_INVENTORY_JSON"), + DCAE_INVENTORY_TOSCA("DCAE_INVENTORY_TOSCA"), + GUIDE("GUIDE"), + HEAT("HEAT"), + HEAT_ARTIFACT("HEAT_ARTIFACT"), + HEAT_ENV("HEAT_ENV"), + HEAT_NESTED("HEAT_NESTED"), + HEAT_NET("HEAT_NET"), + HEAT_VOL("HEAT_VOL"), + LIFECYCLE_OPERATIONS("LIFECYCLE_OPERATIONS"), + MODEL_INVENTORY_PROFILE("MODEL_INVENTORY_PROFILE"), + MODEL_QUERY_SPEC("MODEL_QUERY_SPEC"), + OTHER("OTHER"), + PM_DICTIONARY("PM_DICTIONARY"), + PUPPET("PUPPET"), + SNMP_POLL("SNMP_POLL"), + SNMP_TRAP("SNMP_TRAP"), + TOSCA_CSAR("TOSCA_CSAR"), + TOSCA_TEMPLATE("TOSCA_TEMPLATE"), + UCPE_LAYER_2_CONFIGURATION("UCPE_LAYER_2_CONFIGURATION"), + VENDOR_LICENSE("VENDOR_LICENSE"), + VES_EVENTS("VES_EVENTS"), + VF_LICENSE("VF_LICENSE"), + VF_MODULES_METADATA("VF_MODULES_METADATA"), + VNF_CATALOG("VNF_CATALOG"), + WORKFLOW("WORKFLOW"), + YANG_XML("YANG_XML"), + CHEF("CHEF"), YANG("YANG"), SHELL_SCRIPT("SHELL_SCRIPT"), SHELL("SHELL"), ICON("ICON"), UNKNOWN("UNKNOWN"), DG_XML("DG_XML"), MURANO_PKG("MURANO_PKG"), + NETWORK_CALL_FLOW("NETWORK_CALL_FLOW"), BPEL("BPEL"), APPC_CONFIG("APPC_CONFIG"), PERFORMANCE_COUNTER("PERFORMANCE_COUNTER"), CONTROLLER_BLUEPRINT_ARCHIVE("CONTROLLER_BLUEPRINT_ARCHIVE"), + DCAE_TOSCA("DCAE_TOSCA"), DCAE_JSON("DCAE_JSON"), DCAE_POLICY("DCAE_POLICY"), DCAE_DOC("DCAE_DOC"), DCAE_EVENT("DCAE_EVENT"), + DCAE_INVENTORY_POLICY("DCAE_INVENTORY_POLICY"), DCAE_INVENTORY_DOC("DCAE_INVENTORY_DOC"), DCAE_INVENTORY_BLUEPRINT("DCAE_INVENTORY_BLUEPRINT"), DCAE_INVENTORY_EVENT("DCAE_INVENTORY_EVENT"), + AAI_VF_MODEL("AAI_VF_MODEL"), AAI_VF_MODULE_MODEL("AAI_VF_MODULE_MODEL"), AAI_VF_INSTANCE_MODEL("AAI_VF_INSTANCE_MODEL"), + PLAN("PLAN"), YANG_MODULE("YANG_MODULE"), ONBOARDED_PACKAGE("ONBOARDED_PACKAGE"), PNF_SW_INFORMATION("PNF_SW_INFORMATION"); - private final String type; + private final String type; - public static ArtifactTypeEnum findType(final String type) { - for (final ArtifactTypeEnum ate : ArtifactTypeEnum.values()) { - if (ate.getType().equalsIgnoreCase(type)) { - return ate; - } - } - return null; - } + /** + * Parse a string to a {@link ArtifactTypeEnum}, ignoring the case. + * + * @param type the artifact type + * @return The artifact type if its represented in the present enum, otherwise {@code null}. + */ + public static ArtifactTypeEnum parse(final String type) { + for (final ArtifactTypeEnum artifactType : ArtifactTypeEnum.values()) { + if (artifactType.getType().equalsIgnoreCase(type)) { + return artifactType; + } + } + return null; + } - public static List getAllTypes() { - final List types = new ArrayList<>(); - for (final ArtifactTypeEnum ate : ArtifactTypeEnum.values()) { - types.add(ate.getType()); - } - return types; - } } diff --git a/common-app-api/src/test/java/org/openecomp/sdc/common/api/ArtifactTypeEnumTest.java b/common-app-api/src/test/java/org/openecomp/sdc/common/api/ArtifactTypeEnumTest.java index 86cdeaafa8..86f1f86bb0 100644 --- a/common-app-api/src/test/java/org/openecomp/sdc/common/api/ArtifactTypeEnumTest.java +++ b/common-app-api/src/test/java/org/openecomp/sdc/common/api/ArtifactTypeEnumTest.java @@ -20,43 +20,36 @@ package org.openecomp.sdc.common.api; -import java.util.List; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.nullValue; import org.junit.Test; public class ArtifactTypeEnumTest { - - private ArtifactTypeEnum createTestSubject() { - return ArtifactTypeEnum.AAI_SERVICE_MODEL; - } - @Test - public void testGetType() throws Exception { - ArtifactTypeEnum testSubject; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getType(); + public void testGetType() { + assertThat("The artifact type should match", ArtifactTypeEnum.WORKFLOW.getType(), is("WORKFLOW")); + assertThat("The artifact type should match", ArtifactTypeEnum.OTHER.getType(), is("OTHER")); + assertThat("The artifact type should match", ArtifactTypeEnum.HEAT.getType(), is("HEAT")); } @Test - public void testFindType() throws Exception { - String type = ""; - ArtifactTypeEnum result; - - // default test - result = ArtifactTypeEnum.findType(type); + public void testParse() { + ArtifactTypeEnum actual = ArtifactTypeEnum.parse("HEAT"); + assertThat("The artifact type should not be null", actual, notNullValue()); + assertThat("The artifact type should match", actual, is(ArtifactTypeEnum.HEAT)); + actual = ArtifactTypeEnum.parse("OTHER"); + assertThat("The artifact type should not be null", actual, notNullValue()); + assertThat("The artifact type should match", actual, is(ArtifactTypeEnum.OTHER)); + actual = ArtifactTypeEnum.parse("WORKFLOW"); + assertThat("The artifact type should not be null", actual, notNullValue()); + assertThat("The artifact type should match", actual, is(ArtifactTypeEnum.WORKFLOW)); + actual = ArtifactTypeEnum.parse("anyNotKnownType"); + assertThat("The artifact type should be null", actual, nullValue()); } - - @Test - public void testGetAllTypes() throws Exception { - List result; - - // default test - result = ArtifactTypeEnum.getAllTypes(); - } } -- cgit 1.2.3-korg