25
25
import java .util .Iterator ;
26
26
import java .util .List ;
27
27
import java .util .Map ;
28
+ import org .junit .jupiter .api .BeforeEach ;
28
29
import org .junit .jupiter .api .Test ;
29
30
import org .mockito .Mockito ;
30
31
31
32
class JQExpressionFactoryTest {
32
33
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 ();
57
41
}
58
42
59
43
@ Test
60
- void testNestedArray () {
61
- WorkflowContext workflowContext = Mockito .mock (WorkflowContext .class );
62
- JQExpressionFactory factory = new JQExpressionFactory ();
44
+ void testArrayExpression () {
63
45
WorkflowValueResolver <Map <String , Object >> expr =
64
46
factory .resolveMap (
65
47
ExpressionDescriptor .object (
@@ -78,20 +60,32 @@ void testNestedArray() {
78
60
}
79
61
80
62
@ Test
81
- void testList () {
82
- WorkflowContext workflowContext = Mockito .mock (WorkflowContext .class );
83
- JQExpressionFactory factory = new JQExpressionFactory ();
63
+ void testNesterMapAndArrayTogether () {
84
64
WorkflowValueResolver <Map <String , Object >> expr =
85
65
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}" ))));
87
76
Map <String , Object > result =
88
77
expr .apply (
89
78
workflowContext ,
90
79
null ,
91
- new JacksonModel (JsonUtils .mapper ().createObjectNode ().put ("name" , "item3 " )));
80
+ new JacksonModel (JsonUtils .mapper ().createObjectNode ().put ("name" , "John " )));
92
81
Iterator <Object > iter = ((Collection <Object >) result .get ("array" )).iterator ();
93
82
assertThat (iter .next ()).isEqualTo ("item1" );
94
83
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" );
96
90
}
97
91
}
0 commit comments