Skip to content

Commit 3eada58

Browse files
authored
Add build method to FuncSetTaskBuilder and integration test (#1170)
- Add build() method override to FuncSetTaskBuilder to properly return SetTask - Add test dependencies (serverlessworkflow-impl-model and serverlessworkflow-impl-jackson) to pom.xml - Add integration test 'set_with_map' to verify set task functionality with WorkflowApplication - Remove unused import (auth) from FuncDSLTest This change enables proper building of set tasks in the functional fluent API and validates the functionality through an end-to-end test that creates a workflow, executes it, and verifies the output. Fixes #1155 Signed-off-by: Matheus Cruz <matheuscruz.dev@gmail.com>
1 parent 99f8e6c commit 3eada58

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

experimental/fluent/func/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,17 @@
4545
<version>${version.org.mockito}</version>
4646
<scope>test</scope>
4747
</dependency>
48+
<dependency>
49+
<groupId>io.serverlessworkflow</groupId>
50+
<artifactId>serverlessworkflow-impl-model</artifactId>
51+
<version>${project.version}</version>
52+
<scope>test</scope>
53+
</dependency>
54+
<dependency>
55+
<groupId>io.serverlessworkflow</groupId>
56+
<artifactId>serverlessworkflow-impl-jackson</artifactId>
57+
<version>${project.version}</version>
58+
<scope>test</scope>
59+
</dependency>
4860
</dependencies>
4961
</project>

experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSetTaskBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,9 @@ public FuncSetTaskBuilder expr(Map<String, Object> map) {
3939
this.task.getSet().withSetTaskConfiguration(new MapSetTaskConfiguration(map));
4040
return this;
4141
}
42+
43+
@Override
44+
public SetTask build() {
45+
return this.task;
46+
}
4247
}

experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLTest.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.http;
2424
import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.listen;
2525
import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.toOne;
26-
import static io.serverlessworkflow.fluent.spec.dsl.DSL.auth;
2726
import static io.serverlessworkflow.fluent.spec.dsl.DSL.use;
2827
import static org.junit.jupiter.api.Assertions.assertEquals;
2928
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
@@ -42,6 +41,8 @@
4241
import io.serverlessworkflow.fluent.func.dsl.FuncDSL;
4342
import io.serverlessworkflow.fluent.func.dsl.FuncEmitSpec;
4443
import io.serverlessworkflow.fluent.func.dsl.FuncListenSpec;
44+
import io.serverlessworkflow.impl.WorkflowApplication;
45+
import io.serverlessworkflow.impl.WorkflowDefinition;
4546
import java.net.URI;
4647
import java.nio.charset.StandardCharsets;
4748
import java.util.List;
@@ -432,4 +433,21 @@ void call_with_preconfigured_http_spec() {
432433
.getUse());
433434
assertEquals(Map.of("foo", "bar"), http.getWith().getBody());
434435
}
436+
437+
@Test
438+
void set_with_map() {
439+
try (WorkflowApplication app = WorkflowApplication.builder().build()) {
440+
Workflow workflow =
441+
FuncWorkflowBuilder.workflow()
442+
.tasks(f -> f.set(s -> s.expr(Map.of("message", "hello world!"))))
443+
.build();
444+
445+
WorkflowDefinition workflowDefinition = app.workflowDefinition(workflow);
446+
447+
Map<String, Object> output =
448+
workflowDefinition.instance(Map.of()).start().join().asMap().orElseThrow();
449+
450+
assertEquals(Map.of("message", "hello world!"), output);
451+
}
452+
}
435453
}

0 commit comments

Comments
 (0)