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