diff --git a/experimental/fluent/func/pom.xml b/experimental/fluent/func/pom.xml index dcf2aa96f..5beaf49d1 100644 --- a/experimental/fluent/func/pom.xml +++ b/experimental/fluent/func/pom.xml @@ -45,5 +45,17 @@ ${version.org.mockito} test + + io.serverlessworkflow + serverlessworkflow-impl-model + ${project.version} + test + + + io.serverlessworkflow + serverlessworkflow-impl-jackson + ${project.version} + test + \ No newline at end of file diff --git a/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSetTaskBuilder.java b/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSetTaskBuilder.java index a9d1bd6cf..304a67c81 100644 --- a/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSetTaskBuilder.java +++ b/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/FuncSetTaskBuilder.java @@ -39,4 +39,9 @@ public FuncSetTaskBuilder expr(Map map) { this.task.getSet().withSetTaskConfiguration(new MapSetTaskConfiguration(map)); return this; } + + @Override + public SetTask build() { + return this.task; + } } diff --git a/experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLTest.java b/experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLTest.java index 3dbe95094..2e07737cc 100644 --- a/experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLTest.java +++ b/experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLTest.java @@ -23,7 +23,6 @@ import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.http; import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.listen; import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.toOne; -import static io.serverlessworkflow.fluent.spec.dsl.DSL.auth; import static io.serverlessworkflow.fluent.spec.dsl.DSL.use; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -42,6 +41,8 @@ import io.serverlessworkflow.fluent.func.dsl.FuncDSL; import io.serverlessworkflow.fluent.func.dsl.FuncEmitSpec; import io.serverlessworkflow.fluent.func.dsl.FuncListenSpec; +import io.serverlessworkflow.impl.WorkflowApplication; +import io.serverlessworkflow.impl.WorkflowDefinition; import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.List; @@ -432,4 +433,21 @@ void call_with_preconfigured_http_spec() { .getUse()); assertEquals(Map.of("foo", "bar"), http.getWith().getBody()); } + + @Test + void set_with_map() { + try (WorkflowApplication app = WorkflowApplication.builder().build()) { + Workflow workflow = + FuncWorkflowBuilder.workflow() + .tasks(f -> f.set(s -> s.expr(Map.of("message", "hello world!")))) + .build(); + + WorkflowDefinition workflowDefinition = app.workflowDefinition(workflow); + + Map output = + workflowDefinition.instance(Map.of()).start().join().asMap().orElseThrow(); + + assertEquals(Map.of("message", "hello world!"), output); + } + } }