2525import java .util .Iterator ;
2626import java .util .List ;
2727import java .util .Map ;
28+ import org .junit .jupiter .api .BeforeEach ;
2829import org .junit .jupiter .api .Test ;
2930import org .mockito .Mockito ;
3031
3132class 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