diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/executors/SetExecutor.java b/impl/core/src/main/java/io/serverlessworkflow/impl/executors/SetExecutor.java index 0f0d999e..b06153f3 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/executors/SetExecutor.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/executors/SetExecutor.java @@ -21,7 +21,6 @@ import io.serverlessworkflow.impl.WorkflowDefinition; import io.serverlessworkflow.impl.expressions.ExpressionUtils; import io.serverlessworkflow.impl.json.JsonUtils; -import io.serverlessworkflow.impl.json.MergeUtils; import java.util.Map; public class SetExecutor extends AbstractTaskExecutor { @@ -38,10 +37,8 @@ protected SetExecutor(SetTask task, WorkflowDefinition definition) { @Override protected void internalExecute(WorkflowContext workflow, TaskContext taskContext) { taskContext.rawOutput( - MergeUtils.merge( - JsonUtils.fromValue( - ExpressionUtils.evaluateExpressionMap( - toBeSet, workflow, taskContext, taskContext.input())), - taskContext.input())); + JsonUtils.fromValue( + ExpressionUtils.evaluateExpressionMap( + toBeSet, workflow, taskContext, taskContext.input()))); } } diff --git a/impl/core/src/test/java/io/serverlessworkflow/impl/WorkflowDefinitionTest.java b/impl/core/src/test/java/io/serverlessworkflow/impl/WorkflowDefinitionTest.java index e2a1dbf2..c97f11e5 100644 --- a/impl/core/src/test/java/io/serverlessworkflow/impl/WorkflowDefinitionTest.java +++ b/impl/core/src/test/java/io/serverlessworkflow/impl/WorkflowDefinitionTest.java @@ -16,6 +16,7 @@ package io.serverlessworkflow.impl; import static io.serverlessworkflow.api.WorkflowReader.readWorkflowFromClasspath; +import static io.serverlessworkflow.api.WorkflowReader.validation; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.catchThrowableOfType; @@ -52,7 +53,7 @@ static void init() { @MethodSource("provideParameters") void testWorkflowExecution(String fileName, Consumer assertions) throws IOException { - assertions.accept(appl.workflowDefinition(readWorkflowFromClasspath(fileName))); + assertions.accept(appl.workflowDefinition(readWorkflowFromClasspath(validation(), fileName))); } private static Stream provideParameters() { @@ -60,39 +61,19 @@ private static Stream provideParameters() { args( "switch-then-string.yaml", Map.of("orderType", "electronic"), - o -> - assertThat(o.output()) - .isEqualTo( - Map.of( - "orderType", "electronic", "validate", true, "status", "fulfilled"))), + o -> assertThat(o.output()).isEqualTo(Map.of("validate", true, "status", "fulfilled"))), args( "switch-then-string.yaml", Map.of("orderType", "physical"), o -> assertThat(o.output()) - .isEqualTo( - Map.of( - "orderType", - "physical", - "inventory", - "clear", - "items", - 1, - "address", - "Elmer St"))), + .isEqualTo(Map.of("inventory", "clear", "items", 1, "address", "Elmer St"))), args( "switch-then-string.yaml", Map.of("orderType", "unknown"), o -> assertThat(o.output()) - .isEqualTo( - Map.of( - "orderType", - "unknown", - "log", - "warn", - "message", - "something's wrong"))), + .isEqualTo(Map.of("log", "warn", "message", "something's wrong"))), args( "for-sum.yaml", Map.of("input", Arrays.asList(1, 2, 3)), @@ -100,10 +81,7 @@ private static Stream provideParameters() { args( "for-collect.yaml", Map.of("input", Arrays.asList(1, 2, 3)), - o -> - assertThat(o.output()) - .isEqualTo( - Map.of("input", Arrays.asList(1, 2, 3), "output", Arrays.asList(2, 4, 6)))), + o -> assertThat(o.output()).isEqualTo(Map.of("output", Arrays.asList(2, 4, 6)))), args( "simple-expression.yaml", Map.of("input", Arrays.asList(1, 2, 3)), diff --git a/impl/core/src/test/resources/for-collect.yaml b/impl/core/src/test/resources/for-collect.yaml index 7bcc48c2..53dd8231 100644 --- a/impl/core/src/test/resources/for-collect.yaml +++ b/impl/core/src/test/resources/for-collect.yaml @@ -13,5 +13,5 @@ do: from: '{input: .input, output: []}' do: - sumIndex: - output: - as: .output+=[$number+$index+1] \ No newline at end of file + set: + output: ${.output+[$number+$index+1]} \ No newline at end of file diff --git a/impl/core/src/test/resources/for-sum.yaml b/impl/core/src/test/resources/for-sum.yaml index e0fe106b..6d89d9ff 100644 --- a/impl/core/src/test/resources/for-sum.yaml +++ b/impl/core/src/test/resources/for-sum.yaml @@ -4,16 +4,13 @@ document: name: for-sum-example version: '0.1.0' do: - - initCounter: - set: - counter: 0 - sumAll: for: each: number in: .input do: - accumulate: - output: - as: .counter+=$number - output: - as: .counter \ No newline at end of file + set: + counter: ${.counter+$number} + output: + as: .counter diff --git a/impl/core/src/test/resources/switch-then-string.yaml b/impl/core/src/test/resources/switch-then-string.yaml index a35ebd45..4093a6fa 100644 --- a/impl/core/src/test/resources/switch-then-string.yaml +++ b/impl/core/src/test/resources/switch-then-string.yaml @@ -15,31 +15,17 @@ do: - default: then: handleUnknownOrderType - processElectronicOrder: - do: - - validatePayment: - set: - validate: true - - fulfillOrder: - set: - status: fulfilled - then: exit + set: + validate: true + status: fulfilled + then: exit - processPhysicalOrder: - do: - - checkInventory: - set: - inventory: clear - - packItems: - set: - items: 1 - - scheduleShipping: - set: - address: Elmer St + set: + inventory: clear + items: 1 + address: Elmer St then: exit - handleUnknownOrderType: - do: - - logWarning: - set: - log: warn - - notifyAdmin: - set: - message: something's wrong + set: + log: warn + message: something's wrong