private void addInverseStages(Map<String, Object> pipelineMap, List<Map<String, Object>> stages) { List<Map<String, Object>> inverseStages = new ArrayList<>(); for (Map<String, Object> stage : stages) { inverseStages.add(null == stage ? null : stageTransform.inverseTransform(stage)); } pipelineMap.put(YAML_PIPELINE_STAGES_FIELD, inverseStages); }
public JsonObject transform(Object maybeStage) { Map<String, Object> map = (Map<String, Object>) maybeStage; for (Map.Entry<String, Object> entry : map.entrySet()) { return transform(entry); } throw new RuntimeException("expected stage hash to have 1 item"); }
public JsonObject transform(Map.Entry<String, Object> entry) { String stageName = entry.getKey(); JsonObject stage = new JsonObject(); stage.addProperty(JSON_STAGE_NAME_FIELD, stageName); Map<String, Object> stageMap = (Map<String, Object>) entry.getValue(); addOptionalBoolean(stage, stageMap, JSON_STAGE_FETCH_FIELD, YAML_STAGE_FETCH_FIELD); addOptionalBoolean(stage, stageMap, JSON_STAGE_NEVER_CLEAN_FIELD, YAML_STAGE_KEEP_ARTIFACTS_FIELD); addOptionalBoolean(stage, stageMap, JSON_STAGE_CLEAN_WORK_FIELD, YAML_STAGE_CLEAN_WORK_FIELD); addApproval(stage, stageMap); JsonArray jsonEnvVariables = environmentTransform.transform(stageMap); if (jsonEnvVariables != null && jsonEnvVariables.size() > 0) stage.add(JSON_ENV_VAR_FIELD, jsonEnvVariables); addJobs(stage, stageMap); return stage; }
private void testInverseTransform(String caseFile, String expectedFile) throws IOException { Map<String, Object> inverse = parser.inverseTransform(readJsonGson("parts/stages/" + caseFile + ".json")); JsonObject actual = parser.transform(inverse); assertEquals((readJsonObject("parts/stages/" + expectedFile + ".json")), actual); } }
@Before public void SetUp() { environmentTransform = new EnvironmentVariablesTransform(); jobTransform = mock(JobTransform.class); parser = new StageTransform(environmentTransform, jobTransform); }
public Map<String, Object> inverseTransform(Map<String, Object> stage) { if (stage == null) { return stage; } String stageName = (String) stage.get(JSON_STAGE_NAME_FIELD); Map<String, Object> inverseStage = new LinkedTreeMap<>(); Map<String, Object> stageData = new LinkedTreeMap<>(); addOptionalValue(stageData, stage, JSON_STAGE_FETCH_FIELD, YAML_STAGE_FETCH_FIELD); addOptionalValue(stageData, stage, JSON_STAGE_NEVER_CLEAN_FIELD, YAML_STAGE_KEEP_ARTIFACTS_FIELD); addOptionalValue(stageData, stage, JSON_STAGE_CLEAN_WORK_FIELD, YAML_STAGE_CLEAN_WORK_FIELD); addInverseApproval(stageData, stage); Map<String, Object> yamlEnvVariables = environmentTransform.inverseTransform((List<Map<String, Object>>) stage.get(JSON_ENV_VAR_FIELD)); if (yamlEnvVariables != null && yamlEnvVariables.size() > 0) stageData.putAll(yamlEnvVariables); addInverseJobs(stageData, (List<Map<String, Object>>) stage.get(JSON_STAGE_JOBS_FIELD)); inverseStage.put(stageName, stageData); return inverseStage; }
@Test public void shouldTransformSingleJobStage() throws IOException { parser = new StageTransform(environmentTransform, new JobTransform(environmentTransform, mock(TaskTransform.class))); testTransform("stage-job"); }
@Test public void shouldInverseTransformSingleJobStage() throws IOException { parser = new StageTransform(environmentTransform, new JobTransform(environmentTransform, mock(TaskTransform.class))); testTransform("stage-job"); }
private JsonArray transformStages(List<Object> stagesList) { JsonArray stagesArray = new JsonArray(); for (Object stage : stagesList) { stagesArray.add(stageTransform.transform(stage)); } return stagesArray; }
public RootTransform() { EnvironmentVariablesTransform environmentVarsTransform = new EnvironmentVariablesTransform(); MaterialTransform material = new MaterialTransform(); ParameterTransform parameterTransform = new ParameterTransform(); JobTransform job = new JobTransform(environmentVarsTransform, new TaskTransform()); StageTransform stage = new StageTransform(environmentVarsTransform, job); this.pipelineTransform = new PipelineTransform(material, stage, environmentVarsTransform, parameterTransform); this.environmentsTransform = new EnvironmentsTransform(environmentVarsTransform); }
private void testTransform(String caseFile, String expectedFile) throws IOException { JsonObject expectedObject = (JsonObject) readJsonObject("parts/stages/" + expectedFile + ".json"); JsonObject jsonObject = parser.transform(readYamlObject("parts/stages/" + caseFile + ".yaml")); assertThat(jsonObject, is(new JsonObjectMatcher(expectedObject))); }