Skip to content

Commit fec6de9

Browse files
authored
[Fix #786] Refining test (#788)
Signed-off-by: fjtirado <ftirados@redhat.com>
1 parent c4e46e1 commit fec6de9

File tree

2 files changed

+29
-35
lines changed

2 files changed

+29
-35
lines changed

impl/core/src/main/java/io/serverlessworkflow/impl/expressions/ObjectExpressionFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ private Object buildExpressionObject(Object obj, ExpressionFactory factory) {
4343
} else if (obj instanceof Map map) {
4444
return buildExpressionMap(map, factory);
4545
} else if (obj instanceof Collection col) {
46-
return buildExpressionList(col, factory);
46+
return buildExpressionCollection(col, factory);
4747
} else {
4848
return obj;
4949
}
@@ -84,7 +84,7 @@ private Map<String, Object> buildExpressionMap(
8484
: buildExpressionObject(o, factory));
8585
}
8686

87-
private Collection<Object> buildExpressionList(
87+
private Collection<Object> buildExpressionCollection(
8888
Collection<Object> col, ExpressionFactory factory) {
8989
return new ProxyCollection(
9090
col,

impl/jackson/src/test/java/io/serverlessworkflow/impl/expressions/jq/JQExpressionFactoryTest.java

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -25,41 +25,23 @@
2525
import java.util.Iterator;
2626
import java.util.List;
2727
import java.util.Map;
28+
import org.junit.jupiter.api.BeforeEach;
2829
import org.junit.jupiter.api.Test;
2930
import org.mockito.Mockito;
3031

3132
class JQExpressionFactoryTest {
3233

33-
@Test
34-
void testNestedMap() {
35-
WorkflowContext workflowContext = Mockito.mock(WorkflowContext.class);
36-
JQExpressionFactory factory = new JQExpressionFactory();
37-
WorkflowValueResolver<Map<String, Object>> expr =
38-
factory.resolveMap(
39-
ExpressionDescriptor.object(
40-
Map.of(
41-
"name",
42-
"${.name}",
43-
"surname",
44-
"Doe",
45-
"nested",
46-
Map.of("name", "${.name}", "surname", "Doe"))));
47-
Map<String, Object> result =
48-
expr.apply(
49-
workflowContext,
50-
null,
51-
new JacksonModel(JsonUtils.mapper().createObjectNode().put("name", "John")));
52-
assertThat(result.get("name")).isEqualTo("John");
53-
assertThat(result.get("surname")).isEqualTo("Doe");
54-
Map<String, Object> nested = (Map<String, Object>) result.get("nested");
55-
assertThat(result.get("name")).isEqualTo("John");
56-
assertThat(result.get("surname")).isEqualTo("Doe");
34+
private WorkflowContext workflowContext;
35+
private JQExpressionFactory factory;
36+
37+
@BeforeEach
38+
void setup() {
39+
workflowContext = Mockito.mock(WorkflowContext.class);
40+
factory = new JQExpressionFactory();
5741
}
5842

5943
@Test
60-
void testNestedArray() {
61-
WorkflowContext workflowContext = Mockito.mock(WorkflowContext.class);
62-
JQExpressionFactory factory = new JQExpressionFactory();
44+
void testArrayExpression() {
6345
WorkflowValueResolver<Map<String, Object>> expr =
6446
factory.resolveMap(
6547
ExpressionDescriptor.object(
@@ -78,20 +60,32 @@ void testNestedArray() {
7860
}
7961

8062
@Test
81-
void testList() {
82-
WorkflowContext workflowContext = Mockito.mock(WorkflowContext.class);
83-
JQExpressionFactory factory = new JQExpressionFactory();
63+
void testNesterMapAndArrayTogether() {
8464
WorkflowValueResolver<Map<String, Object>> expr =
8565
factory.resolveMap(
86-
ExpressionDescriptor.object(Map.of("array", List.of("item1", "item2", "${.name}"))));
66+
ExpressionDescriptor.object(
67+
Map.of(
68+
"name",
69+
"${.name}",
70+
"surname",
71+
"Doe",
72+
"nested",
73+
Map.of("name", "${.name}", "surname", "Doe"),
74+
"array",
75+
List.of("item1", "item2", "${.name}"))));
8776
Map<String, Object> result =
8877
expr.apply(
8978
workflowContext,
9079
null,
91-
new JacksonModel(JsonUtils.mapper().createObjectNode().put("name", "item3")));
80+
new JacksonModel(JsonUtils.mapper().createObjectNode().put("name", "John")));
9281
Iterator<Object> iter = ((Collection<Object>) result.get("array")).iterator();
9382
assertThat(iter.next()).isEqualTo("item1");
9483
assertThat(iter.next()).isEqualTo("item2");
95-
assertThat(iter.next()).isEqualTo("item3");
84+
assertThat(iter.next()).isEqualTo("John");
85+
assertThat(result.get("name")).isEqualTo("John");
86+
assertThat(result.get("surname")).isEqualTo("Doe");
87+
Map<String, Object> nested = (Map<String, Object>) result.get("nested");
88+
assertThat(result.get("name")).isEqualTo("John");
89+
assertThat(result.get("surname")).isEqualTo("Doe");
9690
}
9791
}

0 commit comments

Comments
 (0)