diff options
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java')
-rw-r--r-- | catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java new file mode 100644 index 0000000000..490140dac0 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java @@ -0,0 +1,155 @@ +package org.openecomp.sdc.be.components.utils; + +import org.openecomp.sdc.be.dao.utils.MapUtil; +import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstanceInput; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.GroupDefinition; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.PolicyDefinition; +import org.openecomp.sdc.be.model.RequirementCapabilityRelDef; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public abstract class ComponentBuilder<T extends Component, B extends ComponentBuilder<T, B>> { + + private T component; + + protected abstract T component(); + + protected abstract ComponentBuilder<T, B> self(); + + public ComponentBuilder() { + this.component = component(); + } + + public ComponentBuilder(T component) { + this.component = component; + } + + public ComponentBuilder<T, B> setUniqueId(String id) { + component.setUniqueId(id); + return self(); + } + + public ComponentBuilder<T, B> setLifeCycleState(LifecycleStateEnum lifeCycleState) { + component.setLifecycleState(lifeCycleState); + return self(); + } + + public ComponentBuilder<T, B> setLastUpdaterUserId(String lastUpdater) { + component.setLastUpdaterUserId(lastUpdater); + return self(); + } + + public ComponentBuilder<T, B> setInvariantUUid(String invariantUUid) { + component.setInvariantUUID(invariantUUid); + return self(); + } + + public ComponentBuilder<T, B> setName(String name) { + component.setName(name); + return self(); + } + + public ComponentBuilder<T, B> setComponentType(ComponentTypeEnum type) { + component.setComponentType(type); + return self(); + } + + public ComponentBuilder<T, B> setSystemName(String systemName) { + component.setSystemName(systemName); + return self(); + } + + public ComponentBuilder<T, B> addComponentInstance(ComponentInstance componentInstance) { + if (component.getComponentInstances() == null) { + component.setComponentInstances(new ArrayList<>()); + } + component.getComponentInstances().add(componentInstance); + return self(); + } + + public ComponentBuilder<T, B> addInput(InputDefinition input) { + if (component.getInputs() == null) { + component.setInputs(new ArrayList<>()); + } + component.getInputs().add(input); + return self(); + } + + public ComponentBuilder<T, B> addInput(String inputName) { + InputDefinition inputDefinition = new InputDefinition(); + inputDefinition.setName(inputName); + inputDefinition.setUniqueId(inputName); + this.addInput(inputDefinition); + return self(); + } + + public ComponentBuilder<T, B> addInstanceProperty(String instanceId, ComponentInstanceProperty prop) { + if (component.getComponentInstancesProperties() == null) { + component.setComponentInstancesProperties(new HashMap<>()); + } + component.getComponentInstancesProperties().computeIfAbsent(instanceId, key -> new ArrayList<>()).add(prop); + return self(); + } + + public ComponentBuilder<T, B> addInstanceProperty(String instanceId, String propName) { + ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty(); + componentInstanceProperty.setName(propName); + this.addInstanceProperty(instanceId, componentInstanceProperty); + return self(); + } + + public ComponentBuilder<T, B> addInstanceInput(String instanceId, ComponentInstanceInput prop) { + if (component.getComponentInstancesInputs() == null) { + component.setComponentInstancesInputs(new HashMap<>()); + } + component.getComponentInstancesInputs().computeIfAbsent(instanceId, key -> new ArrayList<>()).add(prop); + return self(); + } + + public ComponentBuilder<T, B> addInstanceInput(String instanceId, String propName) { + ComponentInstanceInput componentInstanceInput = new ComponentInstanceInput(); + componentInstanceInput.setName(propName); + this.addInstanceInput(instanceId, componentInstanceInput); + return self(); + } + + public ComponentBuilder<T, B> addRelationship(RequirementCapabilityRelDef requirementCapabilityRelDef) { + if (component.getComponentInstancesRelations() == null) { + component.setComponentInstancesRelations(new ArrayList<>()); + } + component.getComponentInstancesRelations().add(requirementCapabilityRelDef); + return self(); + } + + public ComponentBuilder<T, B> addPolicy(PolicyDefinition policyDefinition) { + if (component.getPolicies() == null) { + component.setPolicies(new HashMap<>()); + } + component.getPolicies().put(policyDefinition.getUniqueId(), policyDefinition); + return self(); + } + public ComponentBuilder<T, B> addGroups(GroupDefinition groupDefinition){ + if(component.getGroups() == null){ + component.setGroups(new ArrayList<>()); + } + component.getGroups().add(groupDefinition); + return self(); + } + + public ComponentBuilder<T, B> setPolicies(List<PolicyDefinition> policies) { + component.setPolicies(MapUtil.toMap(policies, PolicyDefinition::getUniqueId)); + return self(); + } + + public T build() { + return component; + } +} |