22
33import org .junit .jupiter .api .Test ;
44
5- import java .util .ArrayList ;
6- import java .util .HashMap ;
7- import java .util .List ;
8- import java .util .Map ;
5+ import java .util .*;
96import java .util .concurrent .CompletableFuture ;
107import java .util .concurrent .atomic .AtomicInteger ;
118import java .util .stream .Collectors ;
@@ -50,10 +47,14 @@ public void context_is_passed_to_batch_loader_function() {
5047 loader .load ("A" );
5148 loader .load ("B" );
5249 loader .loadMany (asList ("C" , "D" ));
50+ Map <String , ?> keysAndContexts = new LinkedHashMap <>();
51+ keysAndContexts .put ("E" , null );
52+ keysAndContexts .put ("F" , null );
53+ loader .loadMany (keysAndContexts );
5354
5455 List <String > results = loader .dispatchAndJoin ();
5556
56- assertThat (results , equalTo (asList ("A-ctx" , "B-ctx" , "C-ctx" , "D-ctx" )));
57+ assertThat (results , equalTo (asList ("A-ctx" , "B-ctx" , "C-ctx" , "D-ctx" , "E-ctx" , "F-ctx" )));
5758 }
5859
5960 @ Test
@@ -66,10 +67,14 @@ public void key_contexts_are_passed_to_batch_loader_function() {
6667 loader .load ("A" , "aCtx" );
6768 loader .load ("B" , "bCtx" );
6869 loader .loadMany (asList ("C" , "D" ), asList ("cCtx" , "dCtx" ));
70+ Map <String , String > keysAndContexts = new LinkedHashMap <>();
71+ keysAndContexts .put ("E" , "eCtx" );
72+ keysAndContexts .put ("F" , "fCtx" );
73+ loader .loadMany (keysAndContexts );
6974
7075 List <String > results = loader .dispatchAndJoin ();
7176
72- assertThat (results , equalTo (asList ("A-ctx-m:aCtx-l:aCtx" , "B-ctx-m:bCtx-l:bCtx" , "C-ctx-m:cCtx-l:cCtx" , "D-ctx-m:dCtx-l:dCtx" )));
77+ assertThat (results , equalTo (asList ("A-ctx-m:aCtx-l:aCtx" , "B-ctx-m:bCtx-l:bCtx" , "C-ctx-m:cCtx-l:cCtx" , "D-ctx-m:dCtx-l:dCtx" , "E-ctx-m:eCtx-l:eCtx" , "F-ctx-m:fCtx-l:fCtx" )));
7378 }
7479
7580 @ Test
@@ -82,12 +87,17 @@ public void key_contexts_are_passed_to_batch_loader_function_when_batching_disab
8287
8388 CompletableFuture <String > aLoad = loader .load ("A" , "aCtx" );
8489 CompletableFuture <String > bLoad = loader .load ("B" , "bCtx" );
85- CompletableFuture <List <String >> canDLoad = loader .loadMany (asList ("C" , "D" ), asList ("cCtx" , "dCtx" ));
90+ CompletableFuture <List <String >> cAndDLoad = loader .loadMany (asList ("C" , "D" ), asList ("cCtx" , "dCtx" ));
91+ Map <String , String > keysAndContexts = new LinkedHashMap <>();
92+ keysAndContexts .put ("E" , "eCtx" );
93+ keysAndContexts .put ("F" , "fCtx" );
94+ CompletableFuture <Map <String , String >> eAndFLoad = loader .loadMany (keysAndContexts );
8695
8796 List <String > results = new ArrayList <>(asList (aLoad .join (), bLoad .join ()));
88- results .addAll (canDLoad .join ());
97+ results .addAll (cAndDLoad .join ());
98+ results .addAll (eAndFLoad .join ().values ());
8999
90- assertThat (results , equalTo (asList ("A-ctx-m:aCtx-l:aCtx" , "B-ctx-m:bCtx-l:bCtx" , "C-ctx-m:cCtx-l:cCtx" , "D-ctx-m:dCtx-l:dCtx" )));
100+ assertThat (results , equalTo (asList ("A-ctx-m:aCtx-l:aCtx" , "B-ctx-m:bCtx-l:bCtx" , "C-ctx-m:cCtx-l:cCtx" , "D-ctx-m:dCtx-l:dCtx" , "E-ctx-m:eCtx-l:eCtx" , "F-ctx-m:fCtx-l:fCtx" )));
91101 }
92102
93103 @ Test
@@ -101,9 +111,14 @@ public void missing_key_contexts_are_passed_to_batch_loader_function() {
101111 loader .load ("B" );
102112 loader .loadMany (asList ("C" , "D" ), singletonList ("cCtx" ));
103113
114+ Map <String , String > keysAndContexts = new LinkedHashMap <>();
115+ keysAndContexts .put ("E" , "eCtx" );
116+ keysAndContexts .put ("F" , null );
117+ loader .loadMany (keysAndContexts );
118+
104119 List <String > results = loader .dispatchAndJoin ();
105120
106- assertThat (results , equalTo (asList ("A-ctx-m:aCtx-l:aCtx" , "B-ctx-m:null-l:null" , "C-ctx-m:cCtx-l:cCtx" , "D-ctx-m:null-l:null" )));
121+ assertThat (results , equalTo (asList ("A-ctx-m:aCtx-l:aCtx" , "B-ctx-m:null-l:null" , "C-ctx-m:cCtx-l:cCtx" , "D-ctx-m:null-l:null" , "E-ctx-m:eCtx-l:eCtx" , "F-ctx-m:null-l:null" )));
107122 }
108123
109124 @ Test
@@ -125,9 +140,14 @@ public void context_is_passed_to_map_batch_loader_function() {
125140 loader .load ("B" );
126141 loader .loadMany (asList ("C" , "D" ), singletonList ("cCtx" ));
127142
143+ Map <String , String > keysAndContexts = new LinkedHashMap <>();
144+ keysAndContexts .put ("E" , "eCtx" );
145+ keysAndContexts .put ("F" , null );
146+ loader .loadMany (keysAndContexts );
147+
128148 List <String > results = loader .dispatchAndJoin ();
129149
130- assertThat (results , equalTo (asList ("A-ctx-aCtx" , "B-ctx-null" , "C-ctx-cCtx" , "D-ctx-null" )));
150+ assertThat (results , equalTo (asList ("A-ctx-aCtx" , "B-ctx-null" , "C-ctx-cCtx" , "D-ctx-null" , "E-ctx-eCtx" , "F-ctx-null" )));
131151 }
132152
133153 @ Test
@@ -142,9 +162,14 @@ public void null_is_passed_as_context_if_you_do_nothing() {
142162 loader .load ("B" );
143163 loader .loadMany (asList ("C" , "D" ));
144164
165+ Map <String , String > keysAndContexts = new LinkedHashMap <>();
166+ keysAndContexts .put ("E" , null );
167+ keysAndContexts .put ("F" , null );
168+ loader .loadMany (keysAndContexts );
169+
145170 List <String > results = loader .dispatchAndJoin ();
146171
147- assertThat (results , equalTo (asList ("A-null" , "B-null" , "C-null" , "D-null" )));
172+ assertThat (results , equalTo (asList ("A-null" , "B-null" , "C-null" , "D-null" , "E-null" , "F-null" )));
148173 }
149174
150175 @ Test
@@ -160,9 +185,14 @@ public void null_is_passed_as_context_to_map_loader_if_you_do_nothing() {
160185 loader .load ("B" );
161186 loader .loadMany (asList ("C" , "D" ));
162187
188+ Map <String , String > keysAndContexts = new LinkedHashMap <>();
189+ keysAndContexts .put ("E" , null );
190+ keysAndContexts .put ("F" , null );
191+ loader .loadMany (keysAndContexts );
192+
163193 List <String > results = loader .dispatchAndJoin ();
164194
165- assertThat (results , equalTo (asList ("A-null" , "B-null" , "C-null" , "D-null" )));
195+ assertThat (results , equalTo (asList ("A-null" , "B-null" , "C-null" , "D-null" , "E-null" , "F-null" )));
166196 }
167197
168198 @ Test
0 commit comments