Merge "Update Sparky README files"
[aai/sparky-be.git] / src / test / java / org / onap / aai / sparky / crossentityreference / sync / CrossEntityReferenceSynchronizerTest.java
1 package org.onap.aai.sparky.crossentityreference.sync;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNotNull;
5
6 import java.util.ArrayList;
7 import java.util.HashMap;
8 import java.util.HashSet;
9 import java.util.List;
10 import java.util.Map;
11 import java.util.Set;
12
13 import org.hamcrest.Matcher;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.mockito.Matchers;
17 import org.mockito.Mockito;
18 import org.onap.aai.restclient.client.OperationResult;
19 import org.onap.aai.sparky.config.oxm.CrossEntityReferenceLookup;
20 import org.onap.aai.sparky.config.oxm.OxmEntityDescriptor;
21 import org.onap.aai.sparky.config.oxm.OxmEntityLookup;
22 import org.onap.aai.sparky.config.oxm.OxmModelLoader;
23 import org.onap.aai.sparky.config.oxm.OxmModelProcessor;
24 import org.onap.aai.sparky.config.oxm.SearchableEntityLookup;
25 import org.onap.aai.sparky.dal.ActiveInventoryAdapter;
26 import org.onap.aai.sparky.dal.ElasticSearchAdapter;
27 import org.onap.aai.sparky.dal.rest.config.RestEndpointConfig;
28 import org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig;
29 import org.onap.aai.sparky.sync.config.NetworkStatisticsConfig;
30 import org.onap.aai.sparky.sync.enumeration.OperationState;
31 import org.onap.aai.sparky.util.StringCollectionContainsMatcher;
32 import org.onap.aai.sparky.util.TestResourceLoader;
33
34 import com.fasterxml.jackson.databind.ObjectMapper;
35
36 public class CrossEntityReferenceSynchronizerTest {
37   
38   private static ObjectMapper mapper = new ObjectMapper();
39
40   private CrossEntityReferenceSynchronizer cerSynchronizer;
41
42   private ElasticSearchSchemaConfig esSchemaConfig;
43   private NetworkStatisticsConfig aaiStatConfig;
44   private NetworkStatisticsConfig esStatConfig;
45   private OxmEntityLookup oxmEntityLookup;
46   private SearchableEntityLookup searchableEntityLookup;
47   private ElasticSearchAdapter esAdapter;
48   private ActiveInventoryAdapter aaiAdapter;
49   private CrossEntityReferenceLookup cerLookup;
50   private RestEndpointConfig aaiRestEndPointConfig;
51
52   @Before
53   public void init() throws Exception {
54
55     esSchemaConfig = new ElasticSearchSchemaConfig();
56     esSchemaConfig.setIndexDocType("default");
57     esSchemaConfig.setIndexMappingsFileName(null);
58     esSchemaConfig.setIndexName("aggregation-index-name");
59     esSchemaConfig.setIndexSettingsFileName(null);
60
61
62     aaiStatConfig = new NetworkStatisticsConfig();
63
64     aaiStatConfig.setNumSamplesPerThreadForRunningAverage(100);
65
66     aaiStatConfig.setBytesHistogramLabel("[Response Size In Bytes]");
67     aaiStatConfig.setBytesHistogramMaxYAxis(1000000L);
68     aaiStatConfig.setBytesHistogramNumBins(20);
69     aaiStatConfig.setBytesHistogramNumDecimalPoints(2);
70
71     aaiStatConfig.setQueueLengthHistogramLabel("[Queue Item Length]");
72     aaiStatConfig.setQueueLengthHistogramMaxYAxis(20000);
73     aaiStatConfig.setQueueLengthHistogramNumBins(20);
74     aaiStatConfig.setQueueLengthHistogramNumDecimalPoints(2);
75
76     aaiStatConfig.setTaskAgeHistogramLabel("[Task Age In Ms]");
77     aaiStatConfig.setTaskAgeHistogramMaxYAxis(600000L);
78     aaiStatConfig.setTaskAgeHistogramNumBins(20);
79     aaiStatConfig.setTaskAgeHistogramNumDecimalPoints(2);
80
81     aaiStatConfig.setResponseTimeHistogramLabel("[Response Time In Ms]");
82     aaiStatConfig.setResponseTimeHistogramMaxYAxis(1000L);
83     aaiStatConfig.setResponseTimeHistogramNumBins(20);
84     aaiStatConfig.setResponseTimeHistogramNumDecimalPoints(2);
85
86     aaiStatConfig.setTpsHistogramLabel("[Transactions Per Second]");
87     aaiStatConfig.setTpsHistogramMaxYAxis(100);
88     aaiStatConfig.setTpsHistogramNumBins(20);
89     aaiStatConfig.setTpsHistogramNumDecimalPoints(2);
90
91     esStatConfig = new NetworkStatisticsConfig();
92
93     esStatConfig.setNumSamplesPerThreadForRunningAverage(100);
94
95     esStatConfig.setBytesHistogramLabel("[Response Size In Bytes]");
96     esStatConfig.setBytesHistogramMaxYAxis(1000000L);
97     esStatConfig.setBytesHistogramNumBins(20);
98     esStatConfig.setBytesHistogramNumDecimalPoints(2);
99
100     esStatConfig.setQueueLengthHistogramLabel("[Queue Item Length]");
101     esStatConfig.setQueueLengthHistogramMaxYAxis(20000);
102     esStatConfig.setQueueLengthHistogramNumBins(20);
103     esStatConfig.setQueueLengthHistogramNumDecimalPoints(2);
104
105     esStatConfig.setTaskAgeHistogramLabel("[Task Age In Ms]");
106     esStatConfig.setTaskAgeHistogramMaxYAxis(600000L);
107     esStatConfig.setTaskAgeHistogramNumBins(20);
108     esStatConfig.setTaskAgeHistogramNumDecimalPoints(2);
109
110     esStatConfig.setResponseTimeHistogramLabel("[Response Time In Ms]");
111     esStatConfig.setResponseTimeHistogramMaxYAxis(10000L);
112     esStatConfig.setResponseTimeHistogramNumBins(20);
113     esStatConfig.setResponseTimeHistogramNumDecimalPoints(2);
114
115     esStatConfig.setTpsHistogramLabel("[Transactions Per Second]");
116     esStatConfig.setTpsHistogramMaxYAxis(100);
117     esStatConfig.setTpsHistogramNumBins(20);
118     esStatConfig.setTpsHistogramNumDecimalPoints(2);
119
120     oxmEntityLookup = new OxmEntityLookup();
121
122     esAdapter = Mockito.mock(ElasticSearchAdapter.class);
123     aaiAdapter = Mockito.mock(ActiveInventoryAdapter.class);
124
125
126     Set<OxmModelProcessor> processors = new HashSet<OxmModelProcessor>();
127
128     processors.add(oxmEntityLookup);
129
130
131     Map<String, OxmEntityDescriptor> oxmEntityDescriptors =
132         new HashMap<String, OxmEntityDescriptor>();
133
134     OxmEntityDescriptor genericVnfDescriptor = new OxmEntityDescriptor();
135     genericVnfDescriptor.setEntityName("generic-vnf");
136     List<String> pkeyNames = new ArrayList<String>();
137     pkeyNames.add("vnf-name");
138
139     genericVnfDescriptor.setPrimaryKeyAttributeNames(pkeyNames);
140
141     oxmEntityDescriptors.put("generic-vnf", genericVnfDescriptor);
142
143
144     oxmEntityLookup.setEntityDescriptors(oxmEntityDescriptors);
145
146     cerLookup = new CrossEntityReferenceLookup();
147     processors.add(cerLookup);
148     
149     searchableEntityLookup = new SearchableEntityLookup();
150     processors.add(searchableEntityLookup);
151     
152     OxmModelLoader oxmModelLoader = new OxmModelLoader(-1, processors);
153     oxmModelLoader.loadLatestOxmModel();
154
155     aaiRestEndPointConfig = new RestEndpointConfig();
156     aaiRestEndPointConfig.setNumRequestRetries(5);
157     
158     Mockito.when(aaiAdapter.getEndpointConfig()).thenReturn(aaiRestEndPointConfig);
159     
160   }
161
162   @Test
163   public void validateBasicConstruction() throws Exception {
164
165     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
166         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
167     
168     cerSynchronizer.setAaiAdapter(aaiAdapter);
169     cerSynchronizer.setElasticSearchAdapter(esAdapter);
170
171     assertNotNull(cerSynchronizer.getAaiAdapter());
172     assertNotNull(cerSynchronizer.getElasticSearchAdapter());
173
174   }
175   
176   private Matcher<List<String>> listContainsValue(String expectedValue) {
177     return new StringCollectionContainsMatcher(expectedValue);
178   }
179
180   @Test
181   public void validateSmallSync() throws Exception {
182
183     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
184         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
185
186     cerSynchronizer.setAaiAdapter(aaiAdapter);
187     cerSynchronizer.setElasticSearchAdapter(esAdapter);
188
189     String nodesQueryResponse = TestResourceLoader
190         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
191
192     OperationResult entitySelfLinks = new OperationResult();
193
194     entitySelfLinks.setResultCode(200);
195     entitySelfLinks.setResult(nodesQueryResponse);
196
197     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
198         .thenReturn(entitySelfLinks);
199     
200     Mockito
201         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
202             Mockito.anyString()))
203         .thenReturn(
204             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
205
206     Mockito
207         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
208             Mockito.anyString()))
209         .thenReturn(
210             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
211
212     Mockito
213         .when(
214             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
215         .thenReturn(
216             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
217
218     Mockito
219         .when(aaiAdapter.queryActiveInventoryWithRetries(
220             Matchers.contains("service-subscription-2"), Mockito.anyString(),
221             Mockito.anyInt()))
222         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
223             "/sync/aai/service-subscription-service-subscription-2.json")));
224
225     Mockito
226         .when(aaiAdapter.queryActiveInventoryWithRetries(
227             Matchers.contains("service-subscription-1"), Mockito.anyString(),
228             Mockito.anyInt()))
229         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
230             "/sync/aai/service-subscription-service-subscription-1.json")));
231
232     Mockito
233         .when(aaiAdapter.queryActiveInventoryWithRetries(Matchers.contains("service-subscription-3"),
234             Mockito.anyString(), Mockito.anyInt()))
235         .thenReturn(new OperationResult(200, TestResourceLoader
236             .getTestResourceDataJson("/sync/aai/service-subscription-service-subscription-3.json")));
237     
238     Mockito
239         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
240             Matchers.argThat(listContainsValue("service-instance-59"))))
241         .thenReturn("https://server.proxy:8443/aai/v11/search/generic-query/service-instance-59");
242
243     Mockito
244         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
245             Matchers.argThat(listContainsValue("service-instance-54"))))
246         .thenReturn(
247             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
248
249     Mockito
250         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
251             Matchers.argThat(listContainsValue("service-instance-55"))))
252         .thenReturn(
253             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
254
255     Mockito
256         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
257             Matchers.argThat(listContainsValue("service-instance-50"))))
258         .thenReturn(
259             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
260
261     Mockito
262         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
263             Matchers.argThat(listContainsValue("service-instance-52"))))
264         .thenReturn(
265             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
266
267     Mockito
268         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
269             Matchers.argThat(listContainsValue("service-instance-57"))))
270         .thenReturn(
271             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
272
273     Mockito
274         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
275             Matchers.argThat(listContainsValue("service-instance-53"))))
276         .thenReturn(
277             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
278
279     Mockito
280         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
281             Matchers.argThat(listContainsValue("service-instance-58"))))
282         .thenReturn(
283             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
284
285     Mockito
286         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
287             Matchers.argThat(listContainsValue("service-instance-51"))))
288         .thenReturn(
289             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
290     
291     Mockito
292         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
293             Matchers.argThat(listContainsValue("service-instance-56"))))
294         .thenReturn(
295             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
296     
297     
298     
299     
300     Mockito
301     .when(aaiAdapter.queryActiveInventoryWithRetries(
302         Matchers.contains("generic-query/service-instance-59"), Mockito.anyString(),
303         Mockito.anyInt()))
304     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
305         "/sync/aai/aai-traversal/generic-query/service-instance-59.json")));
306
307     Mockito
308     .when(aaiAdapter.queryActiveInventoryWithRetries(
309         Matchers.contains("generic-query/service-instance-54"), Mockito.anyString(),
310         Mockito.anyInt()))
311     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
312         "/sync/aai/aai-traversal/generic-query/service-instance-54.json")));
313     
314     Mockito
315     .when(aaiAdapter.queryActiveInventoryWithRetries(
316         Matchers.contains("generic-query/service-instance-55"), Mockito.anyString(),
317         Mockito.anyInt()))
318     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
319         "/sync/aai/aai-traversal/generic-query/service-instance-55.json")));
320
321     Mockito
322     .when(aaiAdapter.queryActiveInventoryWithRetries(
323         Matchers.contains("generic-query/service-instance-50"), Mockito.anyString(),
324         Mockito.anyInt()))
325     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
326         "/sync/aai/aai-traversal/generic-query/service-instance-50.json")));
327
328     Mockito
329     .when(aaiAdapter.queryActiveInventoryWithRetries(
330         Matchers.contains("generic-query/service-instance-52"), Mockito.anyString(),
331         Mockito.anyInt()))
332     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
333         "/sync/aai/aai-traversal/generic-query/service-instance-52.json")));
334
335     Mockito
336     .when(aaiAdapter.queryActiveInventoryWithRetries(
337         Matchers.contains("generic-query/service-instance-57"), Mockito.anyString(),
338         Mockito.anyInt()))
339     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
340         "/sync/aai/aai-traversal/generic-query/service-instance-57.json")));
341
342     Mockito
343     .when(aaiAdapter.queryActiveInventoryWithRetries(
344         Matchers.contains("generic-query/service-instance-53"), Mockito.anyString(),
345         Mockito.anyInt()))
346     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
347         "/sync/aai/aai-traversal/generic-query/service-instance-53.json")));
348
349     Mockito
350     .when(aaiAdapter.queryActiveInventoryWithRetries(
351         Matchers.contains("generic-query/service-instance-58"), Mockito.anyString(),
352         Mockito.anyInt()))
353     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
354         "/sync/aai/aai-traversal/generic-query/service-instance-58.json")));
355
356     Mockito
357     .when(aaiAdapter.queryActiveInventoryWithRetries(
358         Matchers.contains("generic-query/service-instance-51"), Mockito.anyString(),
359         Mockito.anyInt()))
360     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
361         "/sync/aai/aai-traversal/generic-query/service-instance-51.json")));
362
363     Mockito
364     .when(aaiAdapter.queryActiveInventoryWithRetries(
365         Matchers.contains("generic-query/service-instance-56"), Mockito.anyString(),
366         Mockito.anyInt()))
367     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
368         "/sync/aai/aai-traversal/generic-query/service-instance-56.json")));
369
370     
371     
372     
373     
374     
375     /*
376     
377     Mockito
378     .when(aaiAdapter.queryActiveInventoryWithRetries(
379         Matchers.contains("service-instance-59"), Mockito.anyString(),
380         Mockito.anyInt()))
381     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
382         "/sync/aai/aai-resources/service-instance/service-instance-59.json")));
383
384     Mockito
385     .when(aaiAdapter.queryActiveInventoryWithRetries(
386         Matchers.contains("service-instance-54"), Mockito.anyString(),
387         Mockito.anyInt()))
388     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
389         "/sync/aai/aai-resources/service-instance/service-instance-54.json")));
390     
391     Mockito
392     .when(aaiAdapter.queryActiveInventoryWithRetries(
393         Matchers.contains("service-instance-55"), Mockito.anyString(),
394         Mockito.anyInt()))
395     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
396         "/sync/aai/aai-resources/service-instance/service-instance-55.json")));
397
398     Mockito
399     .when(aaiAdapter.queryActiveInventoryWithRetries(
400         Matchers.contains("service-instance-50"), Mockito.anyString(),
401         Mockito.anyInt()))
402     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
403         "/sync/aai/aai-resources/service-instance/service-instance-50.json")));
404
405     Mockito
406     .when(aaiAdapter.queryActiveInventoryWithRetries(
407         Matchers.contains("service-instance-52"), Mockito.anyString(),
408         Mockito.anyInt()))
409     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
410         "/sync/aai/aai-resources/service-instance/service-instance-52.json")));
411
412     Mockito
413     .when(aaiAdapter.queryActiveInventoryWithRetries(
414         Matchers.contains("service-instance-57"), Mockito.anyString(),
415         Mockito.anyInt()))
416     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
417         "/sync/aai/aai-resources/service-instance/service-instance-57.json")));
418
419     Mockito
420     .when(aaiAdapter.queryActiveInventoryWithRetries(
421         Matchers.contains("service-instance-53"), Mockito.anyString(),
422         Mockito.anyInt()))
423     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
424         "/sync/aai/aai-resources/service-instance/service-instance-53.json")));
425
426     Mockito
427     .when(aaiAdapter.queryActiveInventoryWithRetries(
428         Matchers.contains("service-instance-58"), Mockito.anyString(),
429         Mockito.anyInt()))
430     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
431         "/sync/aai/aai-resources/service-instance/service-instance-58.json")));
432
433     Mockito
434     .when(aaiAdapter.queryActiveInventoryWithRetries(
435         Matchers.contains("service-instance-51"), Mockito.anyString(),
436         Mockito.anyInt()))
437     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
438         "/sync/aai/aai-resources/service-instance/service-instance-51.json")));
439
440     Mockito
441     .when(aaiAdapter.queryActiveInventoryWithRetries(
442         Matchers.contains("service-instance-56"), Mockito.anyString(),
443         Mockito.anyInt()))
444     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
445         "/sync/aai/aai-resources/service-instance/service-instance-56.json")));
446
447     
448     */
449     
450     
451     
452     
453     Mockito.when(esAdapter.buildElasticSearchGetDocUrl(Mockito.anyString(), Mockito.anyString()))
454         .thenReturn("http://localhost:9200/myindex/mytype/doc1",
455             "http://localhost:9200/myindex/mytype/doc2",
456             "http://localhost:9200/myindex/mytype/doc3");
457
458     /*
459      * Our initial gets from elastic search should be record-not-found
460      */
461     Mockito.when(esAdapter.doGet(Matchers.contains("doc1"), Mockito.any()))
462         .thenReturn(new OperationResult(404, null));
463     Mockito.when(esAdapter.doGet(Matchers.contains("doc2"), Mockito.any()))
464         .thenReturn(new OperationResult(404, null));
465     Mockito.when(esAdapter.doGet(Matchers.contains("doc3"), Mockito.any()))
466         .thenReturn(new OperationResult(404, null));
467
468
469     Mockito.when(esAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
470         .thenReturn(new OperationResult(200, null));
471
472     OperationState syncState = cerSynchronizer.doSync();
473     assertEquals(OperationState.OK, syncState);
474
475     assertNotNull(cerSynchronizer.getStatReport(false));
476     assertNotNull(cerSynchronizer.getStatReport(true));
477
478     cerSynchronizer.clearCache();
479     cerSynchronizer.shutdown();
480
481
482   }
483
484   @Test
485   public void validateSmallSyncWithRetries() throws Exception {
486
487     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
488         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
489
490     cerSynchronizer.setAaiAdapter(aaiAdapter);
491     cerSynchronizer.setElasticSearchAdapter(esAdapter);
492
493     String nodesQueryResponse = TestResourceLoader
494         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
495
496     OperationResult entitySelfLinks = new OperationResult();
497
498     entitySelfLinks.setResultCode(200);
499     entitySelfLinks.setResult(nodesQueryResponse);
500
501     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
502         .thenReturn(entitySelfLinks);
503     
504     Mockito
505         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
506             Mockito.anyString()))
507         .thenReturn(
508             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
509
510     Mockito
511         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
512             Mockito.anyString()))
513         .thenReturn(
514             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
515
516     Mockito
517         .when(
518             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
519         .thenReturn(
520             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
521
522     Mockito
523         .when(aaiAdapter.queryActiveInventoryWithRetries(
524             Matchers.contains("service-subscription-2"), Mockito.anyString(),
525             Mockito.anyInt()))
526         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
527             "/sync/aai/service-subscription-service-subscription-2.json")));
528
529     Mockito
530         .when(aaiAdapter.queryActiveInventoryWithRetries(
531             Matchers.contains("service-subscription-1"), Mockito.anyString(),
532             Mockito.anyInt()))
533         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
534             "/sync/aai/service-subscription-service-subscription-1.json")));
535
536     Mockito
537         .when(aaiAdapter.queryActiveInventoryWithRetries(Matchers.contains("service-subscription-3"),
538             Mockito.anyString(), Mockito.anyInt()))
539         .thenReturn(new OperationResult(200, TestResourceLoader
540             .getTestResourceDataJson("/sync/aai/service-subscription-service-subscription-3.json")));
541     
542     Mockito
543         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
544             Matchers.argThat(listContainsValue("service-instance-59"))))
545         .thenReturn("https://server.proxy:8443/aai/v11/search/generic-query/service-instance-59");
546
547     Mockito
548         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
549             Matchers.argThat(listContainsValue("service-instance-54"))))
550         .thenReturn(
551             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
552
553     Mockito
554         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
555             Matchers.argThat(listContainsValue("service-instance-55"))))
556         .thenReturn(
557             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
558
559     Mockito
560         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
561             Matchers.argThat(listContainsValue("service-instance-50"))))
562         .thenReturn(
563             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
564
565     Mockito
566         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
567             Matchers.argThat(listContainsValue("service-instance-52"))))
568         .thenReturn(
569             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
570
571     Mockito
572         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
573             Matchers.argThat(listContainsValue("service-instance-57"))))
574         .thenReturn(
575             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
576
577     Mockito
578         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
579             Matchers.argThat(listContainsValue("service-instance-53"))))
580         .thenReturn(
581             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
582
583     Mockito
584         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
585             Matchers.argThat(listContainsValue("service-instance-58"))))
586         .thenReturn(
587             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
588
589     Mockito
590         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
591             Matchers.argThat(listContainsValue("service-instance-51"))))
592         .thenReturn(
593             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
594     
595     Mockito
596         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
597             Matchers.argThat(listContainsValue("service-instance-56"))))
598         .thenReturn(
599             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
600     
601     
602     
603     
604     Mockito
605     .when(aaiAdapter.queryActiveInventoryWithRetries(
606         Matchers.contains("generic-query/service-instance-59"), Mockito.anyString(),
607         Mockito.anyInt()))
608     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
609         "/sync/aai/aai-traversal/generic-query/service-instance-59.json")));
610
611     Mockito
612     .when(aaiAdapter.queryActiveInventoryWithRetries(
613         Matchers.contains("generic-query/service-instance-54"), Mockito.anyString(),
614         Mockito.anyInt()))
615     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
616         "/sync/aai/aai-traversal/generic-query/service-instance-54.json")));
617     
618     Mockito
619     .when(aaiAdapter.queryActiveInventoryWithRetries(
620         Matchers.contains("generic-query/service-instance-55"), Mockito.anyString(),
621         Mockito.anyInt()))
622     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
623         "/sync/aai/aai-traversal/generic-query/service-instance-55.json")));
624
625     Mockito
626     .when(aaiAdapter.queryActiveInventoryWithRetries(
627         Matchers.contains("generic-query/service-instance-50"), Mockito.anyString(),
628         Mockito.anyInt()))
629     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
630         "/sync/aai/aai-traversal/generic-query/service-instance-50.json")));
631
632     Mockito
633     .when(aaiAdapter.queryActiveInventoryWithRetries(
634         Matchers.contains("generic-query/service-instance-52"), Mockito.anyString(),
635         Mockito.anyInt()))
636     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
637         "/sync/aai/aai-traversal/generic-query/service-instance-52.json")));
638
639     Mockito
640     .when(aaiAdapter.queryActiveInventoryWithRetries(
641         Matchers.contains("generic-query/service-instance-57"), Mockito.anyString(),
642         Mockito.anyInt()))
643     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
644         "/sync/aai/aai-traversal/generic-query/service-instance-57.json")));
645
646     Mockito
647     .when(aaiAdapter.queryActiveInventoryWithRetries(
648         Matchers.contains("generic-query/service-instance-53"), Mockito.anyString(),
649         Mockito.anyInt()))
650     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
651         "/sync/aai/aai-traversal/generic-query/service-instance-53.json")));
652
653     Mockito
654     .when(aaiAdapter.queryActiveInventoryWithRetries(
655         Matchers.contains("generic-query/service-instance-58"), Mockito.anyString(),
656         Mockito.anyInt()))
657     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
658         "/sync/aai/aai-traversal/generic-query/service-instance-58.json")));
659
660     Mockito
661     .when(aaiAdapter.queryActiveInventoryWithRetries(
662         Matchers.contains("generic-query/service-instance-51"), Mockito.anyString(),
663         Mockito.anyInt()))
664     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
665         "/sync/aai/aai-traversal/generic-query/service-instance-51.json")));
666
667     Mockito
668     .when(aaiAdapter.queryActiveInventoryWithRetries(
669         Matchers.contains("generic-query/service-instance-56"), Mockito.anyString(),
670         Mockito.anyInt()))
671     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
672         "/sync/aai/aai-traversal/generic-query/service-instance-56.json")));
673
674     
675     
676     
677     
678     
679     /*
680     
681     Mockito
682     .when(aaiAdapter.queryActiveInventoryWithRetries(
683         Matchers.contains("service-instance-59"), Mockito.anyString(),
684         Mockito.anyInt()))
685     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
686         "/sync/aai/aai-resources/service-instance/service-instance-59.json")));
687
688     Mockito
689     .when(aaiAdapter.queryActiveInventoryWithRetries(
690         Matchers.contains("service-instance-54"), Mockito.anyString(),
691         Mockito.anyInt()))
692     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
693         "/sync/aai/aai-resources/service-instance/service-instance-54.json")));
694     
695     Mockito
696     .when(aaiAdapter.queryActiveInventoryWithRetries(
697         Matchers.contains("service-instance-55"), Mockito.anyString(),
698         Mockito.anyInt()))
699     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
700         "/sync/aai/aai-resources/service-instance/service-instance-55.json")));
701
702     Mockito
703     .when(aaiAdapter.queryActiveInventoryWithRetries(
704         Matchers.contains("service-instance-50"), Mockito.anyString(),
705         Mockito.anyInt()))
706     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
707         "/sync/aai/aai-resources/service-instance/service-instance-50.json")));
708
709     Mockito
710     .when(aaiAdapter.queryActiveInventoryWithRetries(
711         Matchers.contains("service-instance-52"), Mockito.anyString(),
712         Mockito.anyInt()))
713     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
714         "/sync/aai/aai-resources/service-instance/service-instance-52.json")));
715
716     Mockito
717     .when(aaiAdapter.queryActiveInventoryWithRetries(
718         Matchers.contains("service-instance-57"), Mockito.anyString(),
719         Mockito.anyInt()))
720     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
721         "/sync/aai/aai-resources/service-instance/service-instance-57.json")));
722
723     Mockito
724     .when(aaiAdapter.queryActiveInventoryWithRetries(
725         Matchers.contains("service-instance-53"), Mockito.anyString(),
726         Mockito.anyInt()))
727     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
728         "/sync/aai/aai-resources/service-instance/service-instance-53.json")));
729
730     Mockito
731     .when(aaiAdapter.queryActiveInventoryWithRetries(
732         Matchers.contains("service-instance-58"), Mockito.anyString(),
733         Mockito.anyInt()))
734     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
735         "/sync/aai/aai-resources/service-instance/service-instance-58.json")));
736
737     Mockito
738     .when(aaiAdapter.queryActiveInventoryWithRetries(
739         Matchers.contains("service-instance-51"), Mockito.anyString(),
740         Mockito.anyInt()))
741     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
742         "/sync/aai/aai-resources/service-instance/service-instance-51.json")));
743
744     Mockito
745     .when(aaiAdapter.queryActiveInventoryWithRetries(
746         Matchers.contains("service-instance-56"), Mockito.anyString(),
747         Mockito.anyInt()))
748     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
749         "/sync/aai/aai-resources/service-instance/service-instance-56.json")));
750
751     
752     */
753     
754     
755     
756     
757     Mockito.when(esAdapter.buildElasticSearchGetDocUrl(Mockito.anyString(), Mockito.anyString()))
758         .thenReturn("http://localhost:9200/myindex/mytype/doc1",
759             "http://localhost:9200/myindex/mytype/doc2",
760             "http://localhost:9200/myindex/mytype/doc3");
761
762     /*
763      * Our initial gets from elastic search should be record-not-found
764      */
765     Mockito.when(esAdapter.doGet(Matchers.contains("doc1"), Mockito.any()))
766         .thenReturn(new OperationResult(404, null));
767     Mockito.when(esAdapter.doGet(Matchers.contains("doc2"), Mockito.any()))
768         .thenReturn(new OperationResult(404, null));
769     Mockito.when(esAdapter.doGet(Matchers.contains("doc3"), Mockito.any()))
770         .thenReturn(new OperationResult(404, null));
771
772
773     /*
774      * Cause version conflict errors on every put to test retry flow
775      */
776     
777     Mockito.when(esAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
778         .thenReturn(new OperationResult(409, null));
779
780     OperationState syncState = cerSynchronizer.doSync();
781     assertEquals(OperationState.OK, syncState);
782
783     assertNotNull(cerSynchronizer.getStatReport(false));
784     assertNotNull(cerSynchronizer.getStatReport(true));
785
786     cerSynchronizer.clearCache();
787     cerSynchronizer.shutdown();
788
789
790
791
792   }
793   
794   
795   
796   @Test
797   public void validateSmallSyncWithEntityMerges() throws Exception {
798
799     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
800         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
801
802     cerSynchronizer.setAaiAdapter(aaiAdapter);
803     cerSynchronizer.setElasticSearchAdapter(esAdapter);
804
805     String nodesQueryResponse = TestResourceLoader
806         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
807
808     OperationResult entitySelfLinks = new OperationResult();
809
810     entitySelfLinks.setResultCode(200);
811     entitySelfLinks.setResult(nodesQueryResponse);
812
813     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
814         .thenReturn(entitySelfLinks);
815     
816     Mockito
817         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
818             Mockito.anyString()))
819         .thenReturn(
820             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
821
822     Mockito
823         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
824             Mockito.anyString()))
825         .thenReturn(
826             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
827
828     Mockito
829         .when(
830             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
831         .thenReturn(
832             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
833
834     Mockito
835         .when(aaiAdapter.queryActiveInventoryWithRetries(
836             Matchers.contains("service-subscription-2"), Mockito.anyString(),
837             Mockito.anyInt()))
838         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
839             "/sync/aai/service-subscription-service-subscription-2.json")));
840
841     Mockito
842         .when(aaiAdapter.queryActiveInventoryWithRetries(
843             Matchers.contains("service-subscription-1"), Mockito.anyString(),
844             Mockito.anyInt()))
845         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
846             "/sync/aai/service-subscription-service-subscription-1.json")));
847
848     Mockito
849         .when(aaiAdapter.queryActiveInventoryWithRetries(Matchers.contains("service-subscription-3"),
850             Mockito.anyString(), Mockito.anyInt()))
851         .thenReturn(new OperationResult(200, TestResourceLoader
852             .getTestResourceDataJson("/sync/aai/service-subscription-service-subscription-3.json")));
853     
854     Mockito
855         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
856             Matchers.argThat(listContainsValue("service-instance-59"))))
857         .thenReturn("https://server.proxy:8443/aai/v11/search/generic-query/service-instance-59");
858
859     Mockito
860         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
861             Matchers.argThat(listContainsValue("service-instance-54"))))
862         .thenReturn(
863             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
864
865     Mockito
866         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
867             Matchers.argThat(listContainsValue("service-instance-55"))))
868         .thenReturn(
869             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
870
871     Mockito
872         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
873             Matchers.argThat(listContainsValue("service-instance-50"))))
874         .thenReturn(
875             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
876
877     Mockito
878         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
879             Matchers.argThat(listContainsValue("service-instance-52"))))
880         .thenReturn(
881             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
882
883     Mockito
884         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
885             Matchers.argThat(listContainsValue("service-instance-57"))))
886         .thenReturn(
887             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
888
889     Mockito
890         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
891             Matchers.argThat(listContainsValue("service-instance-53"))))
892         .thenReturn(
893             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
894
895     Mockito
896         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
897             Matchers.argThat(listContainsValue("service-instance-58"))))
898         .thenReturn(
899             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
900
901     Mockito
902         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
903             Matchers.argThat(listContainsValue("service-instance-51"))))
904         .thenReturn(
905             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
906     
907     Mockito
908         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
909             Matchers.argThat(listContainsValue("service-instance-56"))))
910         .thenReturn(
911             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
912     
913     
914     
915     
916     Mockito
917     .when(aaiAdapter.queryActiveInventoryWithRetries(
918         Matchers.contains("generic-query/service-instance-59"), Mockito.anyString(),
919         Mockito.anyInt()))
920     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
921         "/sync/aai/aai-traversal/generic-query/service-instance-59.json")));
922
923     Mockito
924     .when(aaiAdapter.queryActiveInventoryWithRetries(
925         Matchers.contains("generic-query/service-instance-54"), Mockito.anyString(),
926         Mockito.anyInt()))
927     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
928         "/sync/aai/aai-traversal/generic-query/service-instance-54.json")));
929     
930     Mockito
931     .when(aaiAdapter.queryActiveInventoryWithRetries(
932         Matchers.contains("generic-query/service-instance-55"), Mockito.anyString(),
933         Mockito.anyInt()))
934     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
935         "/sync/aai/aai-traversal/generic-query/service-instance-55.json")));
936
937     Mockito
938     .when(aaiAdapter.queryActiveInventoryWithRetries(
939         Matchers.contains("generic-query/service-instance-50"), Mockito.anyString(),
940         Mockito.anyInt()))
941     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
942         "/sync/aai/aai-traversal/generic-query/service-instance-50.json")));
943
944     Mockito
945     .when(aaiAdapter.queryActiveInventoryWithRetries(
946         Matchers.contains("generic-query/service-instance-52"), Mockito.anyString(),
947         Mockito.anyInt()))
948     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
949         "/sync/aai/aai-traversal/generic-query/service-instance-52.json")));
950
951     Mockito
952     .when(aaiAdapter.queryActiveInventoryWithRetries(
953         Matchers.contains("generic-query/service-instance-57"), Mockito.anyString(),
954         Mockito.anyInt()))
955     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
956         "/sync/aai/aai-traversal/generic-query/service-instance-57.json")));
957
958     Mockito
959     .when(aaiAdapter.queryActiveInventoryWithRetries(
960         Matchers.contains("generic-query/service-instance-53"), Mockito.anyString(),
961         Mockito.anyInt()))
962     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
963         "/sync/aai/aai-traversal/generic-query/service-instance-53.json")));
964
965     Mockito
966     .when(aaiAdapter.queryActiveInventoryWithRetries(
967         Matchers.contains("generic-query/service-instance-58"), Mockito.anyString(),
968         Mockito.anyInt()))
969     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
970         "/sync/aai/aai-traversal/generic-query/service-instance-58.json")));
971
972     Mockito
973     .when(aaiAdapter.queryActiveInventoryWithRetries(
974         Matchers.contains("generic-query/service-instance-51"), Mockito.anyString(),
975         Mockito.anyInt()))
976     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
977         "/sync/aai/aai-traversal/generic-query/service-instance-51.json")));
978
979     Mockito
980     .when(aaiAdapter.queryActiveInventoryWithRetries(
981         Matchers.contains("generic-query/service-instance-56"), Mockito.anyString(),
982         Mockito.anyInt()))
983     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
984         "/sync/aai/aai-traversal/generic-query/service-instance-56.json")));
985
986     
987     Mockito.when(esAdapter.buildElasticSearchGetDocUrl(Mockito.anyString(), Mockito.anyString()))
988         .thenReturn("http://localhost:9200/myindex/mytype/doc1",
989             "http://localhost:9200/myindex/mytype/doc2",
990             "http://localhost:9200/myindex/mytype/doc3");
991
992     /*
993      * Our initial gets from elastic search return 200 ok with a found entity document requiring a doc update
994      */
995     Mockito.when(esAdapter.doGet(Matchers.contains("doc1"), Mockito.any())).thenReturn(new OperationResult(200,
996             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch1.json")));
997
998     Mockito.when(esAdapter.doGet(Matchers.contains("doc2"), Mockito.any())).thenReturn(new OperationResult(200,
999             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch2.json")));
1000
1001     Mockito.when(esAdapter.doGet(Matchers.contains("doc3"), Mockito.any())).thenReturn(new OperationResult(200,
1002             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch3.json")));
1003
1004     Mockito.when(esAdapter.doGet(Matchers.contains("doc4"), Mockito.any())).thenReturn(new OperationResult(200,
1005             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch4.json")));
1006
1007     Mockito.when(esAdapter.doGet(Matchers.contains("doc5"), Mockito.any())).thenReturn(new OperationResult(200,
1008             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch5.json")));
1009
1010     Mockito.when(esAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
1011             .thenReturn(new OperationResult(200, null));
1012     
1013
1014     
1015     Mockito.when(esAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
1016         .thenReturn(new OperationResult(200, null));
1017
1018     OperationState syncState = cerSynchronizer.doSync();
1019     assertEquals(OperationState.OK, syncState);
1020
1021     assertNotNull(cerSynchronizer.getStatReport(false));
1022     assertNotNull(cerSynchronizer.getStatReport(true));
1023
1024     cerSynchronizer.clearCache();
1025     cerSynchronizer.shutdown();
1026
1027
1028
1029
1030   }
1031   
1032   
1033   
1034   
1035 }