Skip to content

Commit 6dea9e4

Browse files
manick02tsurdilo
authored andcommitted
Removing workflow name and startstart mandatory checks as they become optional from spec version 0.8
Signed-off-by: manick02 <[email protected]>
1 parent 66d75e5 commit 6dea9e4

File tree

2 files changed

+31
-20
lines changed

2 files changed

+31
-20
lines changed

validation/src/main/java/io/serverlessworkflow/validation/WorkflowValidatorImpl.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,6 @@ public List<ValidationError> validate() {
116116
addValidationError("Workflow id should not be empty", ValidationError.WORKFLOW_VALIDATION);
117117
}
118118

119-
if (workflow.getName() == null || workflow.getName().trim().isEmpty()) {
120-
addValidationError(
121-
"Workflow name should not be empty", ValidationError.WORKFLOW_VALIDATION);
122-
}
123-
124-
if (workflow.getStart() == null) {
125-
addValidationError(
126-
"Workflow must define a starting state", ValidationError.WORKFLOW_VALIDATION);
127-
}
128-
129119
if (workflow.getVersion() == null || workflow.getVersion().trim().isEmpty()) {
130120
addValidationError(
131121
"Workflow version should not be empty", ValidationError.WORKFLOW_VALIDATION);
@@ -137,12 +127,16 @@ public List<ValidationError> validate() {
137127

138128
if (workflow.getStates() != null && !workflow.getStates().isEmpty()) {
139129
boolean existingStateWithStartProperty = false;
140-
String startProperty = workflow.getStart().getStateName();
141-
for (State s : workflow.getStates()) {
142-
if (s.getName().equals(startProperty)) {
143-
existingStateWithStartProperty = true;
144-
break;
130+
if (workflow.getStart() != null) {
131+
String startProperty = workflow.getStart().getStateName();
132+
for (State s : workflow.getStates()) {
133+
if (s.getName().equals(startProperty)) {
134+
existingStateWithStartProperty = true;
135+
break;
136+
}
145137
}
138+
} else {
139+
existingStateWithStartProperty = true;
146140
}
147141
if (!existingStateWithStartProperty) {
148142
addValidationError(

validation/src/test/java/io/serverlessworkflow/validation/test/WorkflowValidationTest.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,10 @@ public void testFromIncompleteWorkflow() {
6767
WorkflowValidator workflowValidator = new WorkflowValidatorImpl();
6868
List<ValidationError> validationErrors = workflowValidator.setWorkflow(workflow).validate();
6969
Assertions.assertNotNull(validationErrors);
70-
Assertions.assertEquals(2, validationErrors.size());
71-
72-
Assertions.assertEquals(
73-
"Workflow name should not be empty", validationErrors.get(0).getMessage());
70+
Assertions.assertEquals(1, validationErrors.size());
7471
Assertions.assertEquals(
7572
"No state name found that matches the workflow start definition",
76-
validationErrors.get(1).getMessage());
73+
validationErrors.get(0).getMessage());
7774
}
7875

7976
@Test
@@ -147,4 +144,24 @@ public void testOperationStateNoFunctionRef() {
147144
"Operation State action functionRef does not reference an existing workflow function definition",
148145
validationErrors.get(0).getMessage());
149146
}
147+
148+
@Test
149+
public void testValidatateWorkflowWithNoStartStateandNameSpecified() {
150+
Workflow workflow =
151+
new Workflow()
152+
.withId("test-workflow")
153+
.withVersion("1.0")
154+
.withStates(
155+
Arrays.asList(
156+
new SleepState()
157+
.withName("sleepState")
158+
.withType(SLEEP)
159+
.withEnd(new End())
160+
.withDuration("PT1M")));
161+
162+
WorkflowValidator workflowValidator = new WorkflowValidatorImpl();
163+
List<ValidationError> validationErrors = workflowValidator.setWorkflow(workflow).validate();
164+
Assertions.assertNotNull(validationErrors);
165+
Assertions.assertEquals(0, validationErrors.size());
166+
}
150167
}

0 commit comments

Comments
 (0)