package org.alien4cloud.test.setup; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Map; import org.apache.commons.lang3.StringUtils; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; @Slf4j public class TestDataRegistry { /** * This map contains artifacts that need to be zipped in prepare test data phase PrepareTestData.main * it's a map of input folder --> zip path */ public static final Map<Path, Path> SOURCE_TO_TARGET_ARTIFACT_MAPPING = Maps.newHashMap(); /** * This map contains artifacts that is required for IT test * it's a map of human readable artifact name --> zip path */ public static final Map<String, Path> TEST_ARTIFACTS = Maps.newHashMap(); /** * This property is injected by fail safe plugin, it contains the directory of test project */ public static final Path BASE_DIR; static { String basedir = System.getProperty("basedir"); if (StringUtils.isEmpty(basedir)) { // Test from IDE basedir = "."; } BASE_DIR = Paths.get(basedir).normalize().toAbsolutePath(); } /** * The parent project, it's where all artifacts are stored */ public static final Path A4C_DIR = BASE_DIR.getParent(); /** * The path where all it artifacts are stored */ public static final Path IT_ARTIFACTS_DIR = A4C_DIR.resolve("target").resolve("it-artifacts"); public static final String GIT_ARTIFACTS_PATH = "target/git/"; /** * All artifacts that comes from git will be put here */ public static final Path GIT_ARTIFACTS_DIR = BASE_DIR.resolve(GIT_ARTIFACTS_PATH); static { addConditionFolder("tosca base types 1.0", "src/test/resources/data/csars/tosca-base-types-1.0"); addConditionFolder("tosca base types 2.0", "src/test/resources/data/csars/tosca-base-types-2.0"); addConditionFolder("tosca base types 3.0", "src/test/resources/data/csars/tosca-base-types-3.0"); addConditionFolder("sample java types 1.0", "src/test/resources/data/csars/sample/java-types-1.0"); addConditionFolder("sample java types 2.0", "src/test/resources/data/csars/sample/java-types-2.0"); addConditionFolder("sample java types 3.0", "src/test/resources/data/csars/sample/java-types-3.0"); addConditionFolder("ubuntu types 0.1", "src/test/resources/data/csars/sample/ubuntu-types-0.1"); addConditionFolder("sample apache lb types 0.1", "src/test/resources/data/csars/sample/apache-lb-types-0.1"); addConditionFolder("sample apache lb types 0.2", "src/test/resources/data/csars/sample/apache-lb-types-0.2"); // Types and constraints parsing data addConditionFolder("constraints", "src/test/resources/data/csars/definition/constraints"); addConditionFolder("invalid (definition file not found)", "src/test/resources/data/csars/definition/missing"); addConditionFolder("invalid (definition file is not valid yaml file)", "src/test/resources/data/csars/definition/erroneous"); addConditionFolder("invalid (definition file's declaration duplicated)", "src/test/resources/data/csars/definition/duplicated"); addConditionFolder("invalid (ALIEN-META.yaml not found)", "src/test/resources/data/csars/metadata/missing"); addConditionFolder("invalid (ALIEN-META.yaml invalid)", "src/test/resources/data/csars/metadata/erroneous"); addConditionFolder("invalid (ALIEN-META.yaml fail validation)", "src/test/resources/data/csars/metadata/validationFailure"); addConditionFolder("invalid (icon not found)", "src/test/resources/data/csars/icon/missing"); addConditionFolder("invalid (icon invalid)", "src/test/resources/data/csars/icon/erroneous"); addConditionFolder("snapshot", "src/test/resources/data/csars/snapshot"); addConditionFolder("snapshot-bis", "src/test/resources/data/csars/snapshot-bis"); addConditionFolder("snapshot-ter", "src/test/resources/data/csars/snapshot-ter"); addConditionFolder("released", "src/test/resources/data/csars/released"); addConditionFolder("snapshot dependency", "src/test/resources/data/csars/released-with-snapshot-depdency/snapshot-dependency"); addConditionFolder("released dependency", "src/test/resources/data/csars/released-with-snapshot-depdency/released-dependency"); addConditionFolder("released with snapshot dependency", "src/test/resources/data/csars/released-with-snapshot-depdency/bad-released"); addConditionFolder("released with released dependency", "src/test/resources/data/csars/released-with-snapshot-depdency/good-released"); addConditionFolder("released-bis", "src/test/resources/data/csars/released-bis"); addConditionFolder("relationship test types", "src/test/resources/data/csars/relationship-test-types"); addConditionFolder("valid-csar-with-test", "src/test/resources/data/csars/snapshot-test/snapshot-test-valid"); addConditionFolder("valid-csar-with-update1", "src/test/resources/data/csars/snapshot-test/snapshot-test-update1"); addConditionFolder("valid-csar-with-update2", "src/test/resources/data/csars/snapshot-test/snapshot-test-update2"); addConditionFolder("valid-csar-with-update3", "src/test/resources/data/csars/snapshot-test/snapshot-test-update3"); addConditionFolder("csar-test-no-topology", "src/test/resources/data/csars/snapshot-test/missing-topology-yaml"); addConditionFolder("topology with wrong os distribution value", "src/test/resources/data/csars/suggestion-test/ubuntu-wrong-capabilities-property"); addConditionFolder("topology with similar os distribution value", "src/test/resources/data/csars/suggestion-test/ubuntu-info-capabilities-property"); addConditionFolder("topology with wrong device value", "src/test/resources/data/csars/suggestion-test/blockstorage-wrong-property"); addConditionFolder("topology with similar device value", "src/test/resources/data/csars/suggestion-test/blockstorage-info-property"); addConditionFolder("containing relationship types for suggestion tests", "src/test/resources/data/csars/suggestion-test/relationship-type"); addConditionFolder("topology with similar relationship property value", "src/test/resources/data/csars/suggestion-test/relationship-info-property"); addConditionFolder("topology with wrong relationship property value", "src/test/resources/data/csars/suggestion-test/relationship-wrong-property"); addConditionFolder("node type with similar node filter constraint value", "src/test/resources/data/csars/suggestion-test/node-type-info-node-filter"); addConditionFolder("node type with wrong node filter constraint value", "src/test/resources/data/csars/suggestion-test/node-type-wrong-node-filter"); addConditionFolder("node type with new suggestion for equal constraint of node filter", "src/test/resources/data/csars/suggestion-test/node-type-new-suggestion-eq"); addConditionFolder("node type with new suggestion for valid values constraint of node filter", "src/test/resources/data/csars/suggestion-test/node-type-new-suggestion-vv"); // Topology parsing data addConditionFolder("topology-singlecompute", "src/test/resources/data/csars/topology_template/topology-singlecompute"); addConditionFolder("topology-missing-inputs", "src/test/resources/data/csars/topology_template/topology-missing-inputs"); addConditionFolder("topology apache", "src/test/resources/data/csars/topology_template/topology-apache-it"); addConditionFolder("topology custom types", "src/test/resources/data/csars/topology_template/topology-custom-types"); addConditionFolder("topology-error-missingtype", "src/test/resources/data/csars/topology_template/topology-error-missingtype"); addConditionFolder("topology-unknown-req", "src/test/resources/data/csars/topology_template/topology-unknown-req"); addConditionFolder("topology-unknown-reqtarget", "src/test/resources/data/csars/topology_template/topology-unknown-reqtarget"); addConditionFolder("topology-unknown-capability", "src/test/resources/data/csars/topology_template/topology-unknown-capability"); addConditionFolder("topology-unknown-capability-short-notation", "src/test/resources/data/csars/topology_template/topology-unknown-capability-short-notation"); addConditionFolder("topology-unknown-relationshiptype", "src/test/resources/data/csars/topology_template/topology-unknown-relationshiptype"); addConditionFolder("topology_inputs", "src/test/resources/data/csars/topology_template/topology_inputs"); addConditionFolder("topology_outputs", "src/test/resources/data/csars/topology_template/topology_outputs"); addConditionFolder("topology-capacility-prop", "src/test/resources/data/csars/topology_template/topology-capacility-prop"); addConditionFolder("topology-capacility-prop-unkown", "src/test/resources/data/csars/topology_template/topology-capacility-prop-unkown"); addConditionFolder("topology-capacility-unkown", "src/test/resources/data/csars/topology_template/topology-capacility-unkown"); addConditionFolder("topology-template-relationship-funtionprop", "src/test/resources/data/csars/topology_template/topology-template-relationship-funtionprop"); addConditionFolder("topology-capability-io", "src/test/resources/data/csars/topology_template/topology-capability-io"); addConditionFolder("topology_artifact", "src/test/resources/data/csars/topology_template/topology_artifact"); addConditionFolder("topology-groups", "src/test/resources/data/csars/topology_template/topology-groups"); addConditionFolder("topology-groups-unknown-policy", "src/test/resources/data/csars/topology_template/topology-groups-unknown-policy"); addConditionFolder("topology-groups-unknown-member", "src/test/resources/data/csars/topology_template/topology-groups-unknown-member"); addConditionFolder("topology-invalid-node-name", "src/test/resources/data/csars/topology_template/topology-invalid-node-name"); addConditionFolder("topology-empty-deployment-artifact", "src/test/resources/data/csars/validate_topology/deployment_artifact"); addConditionFolder("topology-input-artifact", "src/test/resources/data/csars/validate_topology/input_artifact"); addConditionFolder("node_replacement", "src/test/resources/data/csars/node_replacement"); // Artifact addConditionFolder("artifact java types 1.0", "src/test/resources/data/csars/artifact/java-types-1.0-artifact"); addConditionFolder("artifact java types 1.0 wrong type", "src/test/resources/data/csars/artifact/java-types-1.0-artifact-wrong-type"); addConditionFolder("artifact java types 1.0 wrong path", "src/test/resources/data/csars/artifact/java-types-1.0-artifact-wrong-path"); // Node type addConditionFolder("compute-1.0", "src/test/resources/data/csars/node_type"); // Runtime archive addConditionFolder("custom-interface-mock-types", "src/test/resources/data/csars/custom-interface-mock-types"); addConditionFolder("tosca-normative-types", GIT_ARTIFACTS_PATH + "tosca-normative-types"); addConditionFolder("tosca-normative-types-wd06", GIT_ARTIFACTS_PATH + "tosca-normative-types-wd06"); addConditionFolder("tosca-normative-types-1.0.0-SNAPSHOT", GIT_ARTIFACTS_PATH + "tosca-normative-types-1.0.0-SNAPSHOT"); addConditionFolder("alien-base-types 1.1.0", GIT_ARTIFACTS_PATH + "alien4cloud-extended-types-V2/alien-base-types"); addConditionFolder("alien-extended-storage-types 1.2.0", GIT_ARTIFACTS_PATH + "alien4cloud-extended-types-V2/alien-extended-storage-types"); addConditionFolder("samples tomcat-war", GIT_ARTIFACTS_PATH + "samples/tomcat-war"); addConditionFolder("samples apache", GIT_ARTIFACTS_PATH + "samples/apache"); addConditionFolder("samples wordpress", GIT_ARTIFACTS_PATH + "samples/wordpress"); addConditionFolder("samples mysql", GIT_ARTIFACTS_PATH + "samples/mysql"); addConditionFolder("samples php", GIT_ARTIFACTS_PATH + "samples/php"); addConditionFolder("samples topology wordpress", GIT_ARTIFACTS_PATH + "samples/topology-wordpress"); addConditionFolder("samples topology tomcat-war", GIT_ARTIFACTS_PATH + "samples/topology-tomcatWar"); addConditionFolder("samples apache-load-balancer", GIT_ARTIFACTS_PATH + "samples/apache-load-balancer"); addConditionFolder("samples topology load-balancer-tomcat", GIT_ARTIFACTS_PATH + "samples/topology-load-balancer-tomcat"); addConditionFolder("es schema free bug types", "src/test/resources/data/csars/es-bug/types"); addConditionFolder("es schema free bug template", "src/test/resources/data/csars/es-bug/topology"); addConditionFolder("complex properties types", "src/test/resources/data/csars/data_type/data_type_types"); addConditionFolder("complex properties template", "src/test/resources/data/csars/data_type/data_type_topology"); // Archives for dependencies tests. addConditionFolder("dependencies a_v1", "src/test/resources/data/csars/dependencies/a_v1"); addConditionFolder("dependencies b_v1", "src/test/resources/data/csars/dependencies/b_v1"); addConditionFolder("dependencies b_v2", "src/test/resources/data/csars/dependencies/b_v2"); addConditionFolder("dependencies b_v3", "src/test/resources/data/csars/dependencies/b_v3"); addConditionFolder("dependencies b_v4", "src/test/resources/data/csars/dependencies/b_v4"); addConditionFolder("dependencies c_v1", "src/test/resources/data/csars/dependencies/c_v1"); addConditionFolder("dependencies c_v2", "src/test/resources/data/csars/dependencies/c_v2"); addConditionFolder("dependencies c_v3", "src/test/resources/data/csars/dependencies/c_v3"); addConditionFolder("dependencies c_v4", "src/test/resources/data/csars/dependencies/c_v4"); addConditionFolder("dependencies d_v1", "src/test/resources/data/csars/dependencies/d_v1"); addConditionFolder("dependencies d_v2", "src/test/resources/data/csars/dependencies/d_v2"); addConditionFolder("dependencies d_v3", "src/test/resources/data/csars/dependencies/d_v3"); addConditionFolder("dependencies d_v4", "src/test/resources/data/csars/dependencies/d_v4"); addConditionFolder("dependencies scenario_1", "src/test/resources/data/csars/dependencies/scenario_1"); addConditionFolder("dependencies scenario_2", "src/test/resources/data/csars/dependencies/scenario_2"); addConditionFolder("dependencies scenario_3", "src/test/resources/data/csars/dependencies/scenario_3"); addConditionFolder("dependencies scenario_4", "src/test/resources/data/csars/dependencies/scenario_4"); addConditionFolder("dependencies scenario_5", "src/test/resources/data/csars/dependencies/scenario_5"); addConditionFolder("dependencies scenario_6", "src/test/resources/data/csars/dependencies/scenario_6"); // We put all artifacts to a4c root project dir // test uploading an unzipped file (do not zip it) TEST_ARTIFACTS.put("unzipped", BASE_DIR.resolve("src/test/resources/alien/rest/csars/upload.feature")); } public static void addConditionFolder(String condition, String folderPathStr) { // We put all artifacts to a4c root project dir Path folderPath = BASE_DIR.resolve(folderPathStr); Path zipPath = IT_ARTIFACTS_DIR.resolve(folderPath.getFileName() + ".csar"); SOURCE_TO_TARGET_ARTIFACT_MAPPING.put(folderPath, zipPath); TEST_ARTIFACTS.put(condition, zipPath); } }