protected Workflow skeletonDataflow(Dataflow df) { Workflow wf = new Workflow(); parserState.get().setCurrentWorkflow(wf); wf.setName(df.getName()); wf.setIdentifier(WORKFLOW_ROOT.resolve(df.getId() + "/")); return wf; }
private void parseWorkflow(Scanner scanner) { level = Level.Workflow; workflow = new Workflow(); String workflowName = parseName(scanner); workflow.setName(workflowName); wb.getWorkflows().add(workflow); if (workflowName.equals(mainWorkflow)) wb.setMainWorkflow(workflow); }
/** * @throws java.lang.Exception */ @Before public void setUp() throws Exception { subject = new Workflow(); statusReport = new StatusReport<Workflow,StatusReport<?,?>>(subject); }
@Test public void workflow() throws Exception { Workflow wf = new Workflow(); UUID uuid = UUID.fromString(wf.getName()); assertEquals(4, uuid.version()); }
private Workflow parseWorkflow(ScuflType wf) { Workflow oldCurrentWorkflow = parserState.get().getCurrentWorkflow(); Workflow workflow = new Workflow(); workflow.setParent(parserState.get().getCurrentWorkflowBundle()); parserState.get().addMapping(wf, workflow); parserState.get().setCurrentWorkflow(workflow); WorkflowDescriptionType description = wf.getWorkflowdescription(); workflow.setName(sanitiseName(description.getTitle())); parseWorkflowInputs(wf); parseWorkflowOutputs(wf); parseProcessors(wf); parseLinks(wf); parseCoordinations(wf); parseAnnotations(wf); replaceDefaultsWithStringConstants(wf); // To be done parserState.get().setCurrentWorkflow(oldCurrentWorkflow); return workflow; }
/** * Test method for {@link org.apache.taverna.scufl2.validation.correctness.CorrectnessVisitor#visitChild(org.apache.taverna.scufl2.api.common.Child)}. */ @Test public void testCorrectnessOfMissingParent() { Workflow w = new Workflow(); w.setName("fred"); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(w, false, rcvl); Set<NullFieldProblem> nullFieldProblems = rcvl.getNullFieldProblems(); assertEquals(0, nullFieldProblems.size()); // only done when completeness check }
@Test public void setName() throws Exception { Workflow wf = new Workflow(); Processor p = new Processor(); p.setName("fish"); p.setName("soup"); p.setParent(wf); }
@Test public void testCompletenessOfMissingParent() { Workflow w = new Workflow(); w.setName("fred"); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(w, true, rcvl); Set<NullFieldProblem> nullFieldProblems = rcvl.getNullFieldProblems(); assertEquals(1, nullFieldProblems.size()); // parent boolean parentProblem = false; for (NullFieldProblem nlp : nullFieldProblems) { if (nlp.getBean().equals(w) && nlp.getFieldName().equals("parent")) { parentProblem = true; } } assertTrue(parentProblem); }
@Test public void testIncompleteWorkflow() throws ReaderException, IOException { ReportStructuralValidationListener l = new ReportStructuralValidationListener(); WorkflowBundle wb = new WorkflowBundle(); Workflow w = new Workflow(); wb.setMainWorkflow(w); StructuralValidator sv = new StructuralValidator(); sv.checkStructure(wb, l); @SuppressWarnings("unused") ValidatorState vs = sv.getValidatorState(); assertEquals(1, l.getIncompleteWorkflows().size()); assert(l.getIncompleteWorkflows().contains(w)); }
@Test public void testCompletenessOfSpecifiedParent() { Workflow w = new Workflow(); w.setName("fred"); WorkflowBundle wb = new WorkflowBundle(); w.setParent(wb); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(w, true, rcvl); Set<NullFieldProblem> nullFieldProblems = rcvl.getNullFieldProblems(); assertEquals(0, nullFieldProblems.size()); }
@Test public void testOutOfScopeMainWorkflow() { DummyWorkflowBundle dwb = new DummyWorkflowBundle(); Workflow orphanWorkflow = new Workflow(); dwb.setMainWorkflow(orphanWorkflow); dwb.setWorkflows(new NamedSet<Workflow>()); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(dwb, false, rcvl); Set<OutOfScopeValueProblem> outOfScopeValueProblems = rcvl.getOutOfScopeValueProblems(); assertFalse(outOfScopeValueProblems.isEmpty()); boolean problem = false; for (OutOfScopeValueProblem nlp : outOfScopeValueProblems) { if (nlp.getBean().equals(dwb) && nlp.getFieldName().equals("mainWorkflow") && nlp.getValue().equals(orphanWorkflow)) { problem = true; } } assertTrue(problem); }
/** * @throws java.lang.Exception */ @Before public void setUp() throws Exception { workflow = new Workflow(); mainWorkflow = new Workflow(); profile = new Profile(); mainProfile = new Profile(); workflowBundle = new WorkflowBundle(); workflowBundle.setMainProfile(mainProfile); workflowBundle.setMainWorkflow(mainWorkflow); executionService = new LocalExecutionService(); executionEnvironment = new LocalExecutionEnvironment(executionService, null, null); dataBundle = DataBundles.createBundle(); runProfile = new RunProfile(executionEnvironment, workflowBundle, workflow.getName(), profile.getName(), dataBundle); }
@Test public void testInScopeMainWorkflow() { DummyWorkflowBundle dwb = new DummyWorkflowBundle(); Workflow workflow = new Workflow(); dwb.setMainWorkflow(workflow); NamedSet<Workflow> workflows = new NamedSet<Workflow>(); dwb.setWorkflows(workflows); workflows.add(workflow); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(dwb, false, rcvl); Set<OutOfScopeValueProblem> outOfScopeValueProblems = rcvl.getOutOfScopeValueProblems(); boolean problem = false; for (OutOfScopeValueProblem nlp : outOfScopeValueProblems) { if (nlp.getBean().equals(dwb) && nlp.getFieldName().equals("mainWorkflow") && nlp.getValue().equals(workflow)) { problem = true; } } assertFalse(problem); }
@Test public void testValidParent() { WorkflowBundle parent = new WorkflowBundle(); Workflow fw = new Workflow(); fw.setParent(parent); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(parent, false, rcvl); Set<WrongParentProblem> wrongParentProblems = rcvl.getWrongParentProblems(); assertEquals(Collections.EMPTY_SET, wrongParentProblems); }
@Test public void testValidlyScopedBlock() { Workflow wf = new Workflow(); BlockingControlLink bcl = new BlockingControlLink(); bcl.setParent(wf); Processor block = new Processor(); block.setParent(wf); bcl.setBlock(block); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(bcl, false, rcvl); Set<OutOfScopeValueProblem> outOfScopeValueProblems = rcvl.getOutOfScopeValueProblems(); assertEquals(0, outOfScopeValueProblems.size()); } }
@Test public void replaceOnRename() throws Exception { Workflow wf = new Workflow(); Processor fish = new Processor(wf, "fish"); @SuppressWarnings("unused") Processor soup = new Processor(wf, "soup"); assertEquals(2, wf.getProcessors().size()); assertEquals(new HashSet(Arrays.asList("fish", "soup")), wf .getProcessors().getNames()); fish.setName("soup"); assertEquals(new HashSet(Arrays.asList("soup")), wf .getProcessors().getNames()); assertEquals(1, wf.getProcessors().size()); assertEquals(fish, wf.getProcessors().iterator().next()); assertEquals(fish, wf.getProcessors().getByName("soup")); assertNull(wf.getProcessors().getByName("fish")); }
@Test public void nullParentNotCopied() throws Exception { Workflow wf = new Workflow(); Processor orphan = new Processor(); orphan.setName("orphan"); // NOTE: NOT calling // orphan.setParent(wf) wf.getProcessors().add(orphan); assertNull(orphan.getParent()); Workflow clone = (Workflow) wf.clone(); assertTrue(clone.getProcessors().isEmpty()); orphan.setParent(wf); Workflow clone2 = (Workflow) wf.clone(); assertEquals(Collections.singleton("orphan"), clone2.getProcessors() .getNames()); }
@Test public void testCorrectnessOfMergePositionSpecifiedCorrectly() { Workflow w = new Workflow(); DataLink dataLink = new DataLink(); dataLink.setParent(w); InputWorkflowPort iwp = new InputWorkflowPort(); iwp.setParent(w); OutputWorkflowPort owp = new OutputWorkflowPort(); owp.setParent(w); dataLink.setReceivesFrom(iwp); dataLink.setSendsTo(owp); Integer mergePosition = Integer.valueOf(3); dataLink.setMergePosition(mergePosition); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(dataLink, false, rcvl); Set<NegativeValueProblem> negativeValueProblems = rcvl.getNegativeValueProblems(); assertEquals(Collections.EMPTY_SET, negativeValueProblems); }
@Test public void testInScopePorts() { Workflow w = new Workflow(); DataLink dataLink = new DataLink(); dataLink.setParent(w); InputWorkflowPort iwp = new InputWorkflowPort(); iwp.setParent(w); OutputWorkflowPort owp = new OutputWorkflowPort(); owp.setParent(w); dataLink.setReceivesFrom(iwp); dataLink.setSendsTo(owp); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(dataLink, true, rcvl); Set<OutOfScopeValueProblem> outOfScopeValueProblems = rcvl.getOutOfScopeValueProblems(); assertEquals(Collections.EMPTY_SET, outOfScopeValueProblems); }
@Test public void setNameWithParent() throws Exception { Workflow wf = new Workflow(); Processor p = new Processor(); p.setName("fish"); p.setParent(wf); assertTrue(wf.getProcessors().contains(p)); assertTrue(wf.getProcessors().containsName("fish")); assertFalse(wf.getProcessors().containsName("soup")); p.setName("soup"); assertFalse(wf.getProcessors().containsName("fish")); assertTrue(wf.getProcessors().containsName("soup")); }