public TaskTransformTest() { parser = new TaskTransform(); }
private void addInverseTasks(Map<String, Object> jobData, Map<String, Object> job) { List<Map<String, Object>> tasks = (List<Map<String, Object>>) job.get(JSON_JOB_TASKS_FIELD); if (tasks == null) return; List<Map<String, Object>> inverseTasks = new ArrayList<>(); for (Map<String, Object> task : tasks) { inverseTasks.add(null == task ? null : taskTransform.inverseTransform(task)); } jobData.put(YAML_JOB_TASKS_FIELD, inverseTasks); }
public JsonObject transform(Object maybeTask) { Map<String, Object> map = (Map<String, Object>) maybeTask; for (Map.Entry<String, Object> entry : map.entrySet()) { return transform(entry); } throw new RuntimeException("expected task hash to have 1 item"); }
private void testInverseTransform(String caseFile, String expectedFile) throws IOException { Map<String, Object> inverse = parser.inverseTransform(readJsonGson("parts/tasks/" + caseFile + ".json")); JsonObject actual = parser.transform(inverse); assertEquals((readJsonObject("parts/tasks/" + expectedFile + ".json")), actual); } }
public Map<String, Object> inverseTransform(Map<String, Object> task) { String type = (String) task.get(JSON_TASK_TYPE_FIELD); Map<String, Object> inverseTask = new LinkedTreeMap<>(); Map<String, Object> taskData = new LinkedTreeMap<>(); addInverseOnCancel(taskData, task); addOptionalValue(taskData, task, JSON_TASK_PLUGIN_CONFIGURATION_FIELD, YAML_PLUGIN_CONFIGURATION_FIELD); addInverseConfiguration(taskData, task); addOptionalValue(taskData, task, JSON_TASK_IS_FILE_FIELD, YAML_TASK_IS_FILE_FIELD); addOptionalList(taskData, task, JSON_TASK_EXEC_ARGS_FIELD, YAML_TASK_EXEC_ARGS_FIELD); for (Map.Entry<String, Object> taskProp : task.entrySet()) { if (yamlSpecialKeywords.contains(taskProp.getKey())) continue; if (taskProp.getValue() instanceof String) taskData.put(taskProp.getKey(), taskProp.getValue()); } inverseTask.put(type, taskData); return inverseTask; }
throw new YamlConfigException("expected task " + taskType + " to be a hash"); Map<String, Object> taskMap = (Map<String, Object>) taskEntry.getValue(); addOnCancel(taskJson, taskMap);
private void addTasks(List<Object> taskList, JsonArray tasksJson) { for (Object maybeTask : taskList) { if (maybeTask instanceof List) { List<Object> taskNestedList = (List<Object>) maybeTask; addTasks(taskNestedList, tasksJson); } else { JsonObject task = taskTransform.transform(maybeTask); tasksJson.add(task); } } }
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 addInverseOnCancel(Map<String, Object> taskData, Map<String, Object> task) { Object on_cancel = task.get(JSON_TASK_CANCEL_FIELD); if (on_cancel != null) { if (!(on_cancel instanceof LinkedTreeMap)) throw new YamlConfigException("expected on_cancel task to be a hash"); taskData.put(YAML_TASK_CANCEL_FIELD, inverseTransform((Map<String, Object>) on_cancel)); } }
private void addOnCancel(JsonObject taskJson, Map<String, Object> taskMap) { Object on_cancel = taskMap.get(YAML_TASK_CANCEL_FIELD); if (on_cancel != null) { if (!(on_cancel instanceof Map)) throw new YamlConfigException("expected on_cancel task to be a hash"); JsonObject onCancelJson = transform(on_cancel); taskJson.add(JSON_TASK_CANCEL_FIELD, onCancelJson); } } }
@Test public void shouldTransformJobWithListOfListsTasks() throws IOException { environmentTransform = new EnvironmentVariablesTransform(); taskTransform = new TaskTransform(); parser = new JobTransform(environmentTransform, taskTransform); JsonObject job = testTransform("list_of_lists_tasks"); }
private JsonObject testTransform(String caseFile, String expectedFile) throws IOException { JsonObject expectedObject = (JsonObject) readJsonObject("parts/tasks/" + expectedFile + ".json"); JsonObject jsonObject = parser.transform(readYamlObject("parts/tasks/" + caseFile + ".yaml")); assertThat(jsonObject, is(new JsonObjectMatcher(expectedObject))); return jsonObject; }