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