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