23
23
import java .util .Arrays ;
24
24
import java .util .HashSet ;
25
25
26
+ import org .elasticsearch .action .index .IndexAction ;
26
27
import org .elasticsearch .action .index .IndexRequest ;
28
+ import org .elasticsearch .action .index .IndexRequestBuilder ;
27
29
import org .elasticsearch .action .search .SearchAction ;
28
30
import org .elasticsearch .action .search .SearchRequest ;
29
31
import org .elasticsearch .action .search .SearchRequestBuilder ;
@@ -172,7 +174,23 @@ void shouldIncludeSeqNoAndPrimaryTermFromIndexQueryToIndexRequest() {
172
174
}
173
175
174
176
@ Test // DATAES-799
175
- void shouldNotRequestSeqNoAndPrimartyTermViaSearchRequestWhenEntityClassDoesNotContainSeqNoPrimaryTermProperty () {
177
+ void shouldIncludeSeqNoAndPrimaryTermFromIndexQueryToIndexRequestBuilder () {
178
+ when (client .prepareIndex (anyString (), anyString ()))
179
+ .thenReturn (new IndexRequestBuilder (client , IndexAction .INSTANCE ));
180
+
181
+ IndexQuery query = new IndexQuery ();
182
+ query .setObject (new Person ());
183
+ query .setSeqNo (1L );
184
+ query .setPrimaryTerm (2L );
185
+
186
+ IndexRequestBuilder builder = requestFactory .indexRequestBuilder (client , query , IndexCoordinates .of ("persons" ));
187
+
188
+ assertThat (builder .request ().ifSeqNo ()).isEqualTo (1L );
189
+ assertThat (builder .request ().ifPrimaryTerm ()).isEqualTo (2L );
190
+ }
191
+
192
+ @ Test // DATAES-799
193
+ void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassDoesNotContainSeqNoPrimaryTermProperty () {
176
194
Query query = new NativeSearchQueryBuilder ().build ();
177
195
178
196
SearchRequest request = requestFactory .searchRequest (query , Person .class , IndexCoordinates .of ("persons" ));
@@ -181,7 +199,7 @@ void shouldNotRequestSeqNoAndPrimartyTermViaSearchRequestWhenEntityClassDoesNotC
181
199
}
182
200
183
201
@ Test // DATAES-799
184
- void shouldRequestSeqNoAndPrimartyTermViaSearchRequestWhenEntityClassContainsSeqNoPrimaryTermProperty () {
202
+ void shouldRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassContainsSeqNoPrimaryTermProperty () {
185
203
Query query = new NativeSearchQueryBuilder ().build ();
186
204
187
205
SearchRequest request = requestFactory .searchRequest (query , EntityWithSeqNoPrimaryTerm .class ,
@@ -191,14 +209,47 @@ void shouldRequestSeqNoAndPrimartyTermViaSearchRequestWhenEntityClassContainsSeq
191
209
}
192
210
193
211
@ Test // DATAES-799
194
- void shouldNotRequestSeqNoAndPrimartyTermViaSearchRequestWhenEntityClassIsNull () {
212
+ void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassIsNull () {
195
213
Query query = new NativeSearchQueryBuilder ().build ();
196
214
197
215
SearchRequest request = requestFactory .searchRequest (query , null , IndexCoordinates .of ("persons" ));
198
216
199
217
assertThat (request .source ().seqNoAndPrimaryTerm ()).isNull ();
200
218
}
201
219
220
+ @ Test // DATAES-799
221
+ void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestBuilderWhenEntityClassDoesNotContainSeqNoPrimaryTermProperty () {
222
+ when (client .prepareSearch (any ())).thenReturn (new SearchRequestBuilder (client , SearchAction .INSTANCE ));
223
+ Query query = new NativeSearchQueryBuilder ().build ();
224
+
225
+ SearchRequestBuilder builder = requestFactory .searchRequestBuilder (client , query , Person .class ,
226
+ IndexCoordinates .of ("persons" ));
227
+
228
+ assertThat (builder .request ().source ().seqNoAndPrimaryTerm ()).isNull ();
229
+ }
230
+
231
+ @ Test // DATAES-799
232
+ void shouldRequestSeqNoAndPrimaryTermViaSearchRequestBuilderWhenEntityClassContainsSeqNoPrimaryTermProperty () {
233
+ when (client .prepareSearch (any ())).thenReturn (new SearchRequestBuilder (client , SearchAction .INSTANCE ));
234
+ Query query = new NativeSearchQueryBuilder ().build ();
235
+
236
+ SearchRequestBuilder builder = requestFactory .searchRequestBuilder (client , query ,
237
+ EntityWithSeqNoPrimaryTerm .class , IndexCoordinates .of ("seqNoPrimaryTerm" ));
238
+
239
+ assertThat (builder .request ().source ().seqNoAndPrimaryTerm ()).isTrue ();
240
+ }
241
+
242
+ @ Test // DATAES-799
243
+ void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestBuilderWhenEntityClassIsNull () {
244
+ when (client .prepareSearch (any ())).thenReturn (new SearchRequestBuilder (client , SearchAction .INSTANCE ));
245
+ Query query = new NativeSearchQueryBuilder ().build ();
246
+
247
+ SearchRequestBuilder builder = requestFactory .searchRequestBuilder (client , query , null ,
248
+ IndexCoordinates .of ("persons" ));
249
+
250
+ assertThat (builder .request ().source ().seqNoAndPrimaryTerm ()).isNull ();
251
+ }
252
+
202
253
static class Person {
203
254
@ Nullable @ Id String id ;
204
255
@ Nullable @ Field (name = "last-name" ) String lastName ;
0 commit comments