2  * ============LICENSE_START=======================================================
 
   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
 
  12  *       http://www.apache.org/licenses/LICENSE-2.0
 
  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=========================================================
 
  22 package org.onap.aai.sparky.crossentityreference.sync;
 
  24 import static org.junit.Assert.assertEquals;
 
  25 import static org.junit.Assert.assertNotNull;
 
  27 import java.util.ArrayList;
 
  28 import java.util.HashMap;
 
  29 import java.util.HashSet;
 
  30 import java.util.List;
 
  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;
 
  56 import com.fasterxml.jackson.databind.ObjectMapper;
 
  58 public class CrossEntityReferenceSynchronizerTest {
 
  60   private static ObjectMapper mapper = new ObjectMapper();
 
  62   private CrossEntityReferenceSynchronizer cerSynchronizer;
 
  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;
 
  75   public void init() throws Exception {
 
  77     esSchemaConfig = new ElasticSearchSchemaConfig();
 
  78     esSchemaConfig.setIndexDocType("default");
 
  79     esSchemaConfig.setIndexMappingsFileName(null);
 
  80     esSchemaConfig.setIndexName("aggregation-index-name");
 
  81     esSchemaConfig.setIndexSettingsFileName(null);
 
  84     aaiStatConfig = new NetworkStatisticsConfig();
 
  86     aaiStatConfig.setNumSamplesPerThreadForRunningAverage(100);
 
  88     aaiStatConfig.setBytesHistogramLabel("[Response Size In Bytes]");
 
  89     aaiStatConfig.setBytesHistogramMaxYAxis(1000000L);
 
  90     aaiStatConfig.setBytesHistogramNumBins(20);
 
  91     aaiStatConfig.setBytesHistogramNumDecimalPoints(2);
 
  93     aaiStatConfig.setQueueLengthHistogramLabel("[Queue Item Length]");
 
  94     aaiStatConfig.setQueueLengthHistogramMaxYAxis(20000);
 
  95     aaiStatConfig.setQueueLengthHistogramNumBins(20);
 
  96     aaiStatConfig.setQueueLengthHistogramNumDecimalPoints(2);
 
  98     aaiStatConfig.setTaskAgeHistogramLabel("[Task Age In Ms]");
 
  99     aaiStatConfig.setTaskAgeHistogramMaxYAxis(600000L);
 
 100     aaiStatConfig.setTaskAgeHistogramNumBins(20);
 
 101     aaiStatConfig.setTaskAgeHistogramNumDecimalPoints(2);
 
 103     aaiStatConfig.setResponseTimeHistogramLabel("[Response Time In Ms]");
 
 104     aaiStatConfig.setResponseTimeHistogramMaxYAxis(1000L);
 
 105     aaiStatConfig.setResponseTimeHistogramNumBins(20);
 
 106     aaiStatConfig.setResponseTimeHistogramNumDecimalPoints(2);
 
 108     aaiStatConfig.setTpsHistogramLabel("[Transactions Per Second]");
 
 109     aaiStatConfig.setTpsHistogramMaxYAxis(100);
 
 110     aaiStatConfig.setTpsHistogramNumBins(20);
 
 111     aaiStatConfig.setTpsHistogramNumDecimalPoints(2);
 
 113     esStatConfig = new NetworkStatisticsConfig();
 
 115     esStatConfig.setNumSamplesPerThreadForRunningAverage(100);
 
 117     esStatConfig.setBytesHistogramLabel("[Response Size In Bytes]");
 
 118     esStatConfig.setBytesHistogramMaxYAxis(1000000L);
 
 119     esStatConfig.setBytesHistogramNumBins(20);
 
 120     esStatConfig.setBytesHistogramNumDecimalPoints(2);
 
 122     esStatConfig.setQueueLengthHistogramLabel("[Queue Item Length]");
 
 123     esStatConfig.setQueueLengthHistogramMaxYAxis(20000);
 
 124     esStatConfig.setQueueLengthHistogramNumBins(20);
 
 125     esStatConfig.setQueueLengthHistogramNumDecimalPoints(2);
 
 127     esStatConfig.setTaskAgeHistogramLabel("[Task Age In Ms]");
 
 128     esStatConfig.setTaskAgeHistogramMaxYAxis(600000L);
 
 129     esStatConfig.setTaskAgeHistogramNumBins(20);
 
 130     esStatConfig.setTaskAgeHistogramNumDecimalPoints(2);
 
 132     esStatConfig.setResponseTimeHistogramLabel("[Response Time In Ms]");
 
 133     esStatConfig.setResponseTimeHistogramMaxYAxis(10000L);
 
 134     esStatConfig.setResponseTimeHistogramNumBins(20);
 
 135     esStatConfig.setResponseTimeHistogramNumDecimalPoints(2);
 
 137     esStatConfig.setTpsHistogramLabel("[Transactions Per Second]");
 
 138     esStatConfig.setTpsHistogramMaxYAxis(100);
 
 139     esStatConfig.setTpsHistogramNumBins(20);
 
 140     esStatConfig.setTpsHistogramNumDecimalPoints(2);
 
 142     oxmEntityLookup = new OxmEntityLookup();
 
 144     searchServiceAdapter = Mockito.mock(SearchServiceAdapter.class);
 
 145     aaiAdapter = Mockito.mock(ActiveInventoryAdapter.class);
 
 148     Set<OxmModelProcessor> processors = new HashSet<OxmModelProcessor>();
 
 150     processors.add(oxmEntityLookup);
 
 153     Map<String, OxmEntityDescriptor> oxmEntityDescriptors =
 
 154         new HashMap<String, OxmEntityDescriptor>();
 
 156     OxmEntityDescriptor genericVnfDescriptor = new OxmEntityDescriptor();
 
 157     genericVnfDescriptor.setEntityName("generic-vnf");
 
 158     List<String> pkeyNames = new ArrayList<String>();
 
 159     pkeyNames.add("vnf-name");
 
 161     genericVnfDescriptor.setPrimaryKeyAttributeNames(pkeyNames);
 
 163     oxmEntityDescriptors.put("generic-vnf", genericVnfDescriptor);
 
 166     oxmEntityLookup.setEntityDescriptors(oxmEntityDescriptors);
 
 168     cerLookup = new CrossEntityReferenceLookup();
 
 169     processors.add(cerLookup);
 
 171     Map<String, CrossEntityReferenceDescriptor> crossReferenceEntityDescriptors =
 
 172             new HashMap<String, CrossEntityReferenceDescriptor>();
 
 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);
 
 181     List<String> crossEntityPkeyNames = new ArrayList<String>();
 
 182     crossEntityPkeyNames.add("service-type");
 
 183     crossReferenceEntiDescriptor.setPrimaryKeyAttributeNames(crossEntityPkeyNames);
 
 185     crossReferenceEntiDescriptor.setCrossEntityReference(crossEntityReference);
 
 186     crossReferenceEntiDescriptor.setEntityName("service-subscription");
 
 187     crossReferenceEntityDescriptors.put("service-subscription", crossReferenceEntiDescriptor);
 
 188     cerLookup.setCrossReferenceEntityDescriptors(crossReferenceEntityDescriptors);
 
 190     searchableEntityLookup = new SearchableEntityLookup();
 
 191     processors.add(searchableEntityLookup);
 
 193     aaiRestEndPointConfig = new RestEndpointConfig();
 
 194     aaiRestEndPointConfig.setNumRequestRetries(5);
 
 196     Mockito.when(aaiAdapter.getEndpointConfig()).thenReturn(aaiRestEndPointConfig);
 
 201   public void validateBasicConstruction() throws Exception {
 
 203     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
 
 204         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
 
 206     cerSynchronizer.setAaiAdapter(aaiAdapter);
 
 207     cerSynchronizer.setSearchServiceAdapter(searchServiceAdapter);
 
 209     assertNotNull(cerSynchronizer.getAaiAdapter());
 
 210     assertNotNull(cerSynchronizer.getSearchServiceAdapter());
 
 214   private Matcher<List<String>> listContainsValue(String expectedValue) {
 
 215     return new StringCollectionContainsMatcher(expectedValue);
 
 219   public void validateSmallSync() throws Exception {
 
 221     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
 
 222         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
 
 224     cerSynchronizer.setAaiAdapter(aaiAdapter);
 
 225     cerSynchronizer.setSearchServiceAdapter(searchServiceAdapter);
 
 227     String nodesQueryResponse = TestResourceLoader
 
 228         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
 
 230     OperationResult entitySelfLinks = new OperationResult();
 
 232     entitySelfLinks.setResultCode(200);
 
 233     entitySelfLinks.setResult(nodesQueryResponse);
 
 235     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
 
 236         .thenReturn(entitySelfLinks);
 
 239         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
 
 240             Mockito.anyString()))
 
 242             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
 
 245         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
 
 246             Mockito.anyString()))
 
 248             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
 
 252             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
 
 254             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
 
 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")));
 
 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")));
 
 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")));
 
 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");
 
 282         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 283             Matchers.argThat(listContainsValue("service-instance-54"))))
 
 285             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
 
 288         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 289             Matchers.argThat(listContainsValue("service-instance-55"))))
 
 291             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
 
 294         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 295             Matchers.argThat(listContainsValue("service-instance-50"))))
 
 297             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
 
 300         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 301             Matchers.argThat(listContainsValue("service-instance-52"))))
 
 303             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
 
 306         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 307             Matchers.argThat(listContainsValue("service-instance-57"))))
 
 309             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
 
 312         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 313             Matchers.argThat(listContainsValue("service-instance-53"))))
 
 315             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
 
 318         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 319             Matchers.argThat(listContainsValue("service-instance-58"))))
 
 321             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
 
 324         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 325             Matchers.argThat(listContainsValue("service-instance-51"))))
 
 327             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
 
 330         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 331             Matchers.argThat(listContainsValue("service-instance-56"))))
 
 333             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 416     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 417         Matchers.contains("service-instance-59"), Mockito.anyString(),
 
 419     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 420         "/sync/aai/aai-resources/service-instance/service-instance-59.json")));
 
 423     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 424         Matchers.contains("service-instance-54"), Mockito.anyString(),
 
 426     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 427         "/sync/aai/aai-resources/service-instance/service-instance-54.json")));
 
 430     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 431         Matchers.contains("service-instance-55"), Mockito.anyString(),
 
 433     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 434         "/sync/aai/aai-resources/service-instance/service-instance-55.json")));
 
 437     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 438         Matchers.contains("service-instance-50"), Mockito.anyString(),
 
 440     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 441         "/sync/aai/aai-resources/service-instance/service-instance-50.json")));
 
 444     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 445         Matchers.contains("service-instance-52"), Mockito.anyString(),
 
 447     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 448         "/sync/aai/aai-resources/service-instance/service-instance-52.json")));
 
 451     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 452         Matchers.contains("service-instance-57"), Mockito.anyString(),
 
 454     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 455         "/sync/aai/aai-resources/service-instance/service-instance-57.json")));
 
 458     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 459         Matchers.contains("service-instance-53"), Mockito.anyString(),
 
 461     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 462         "/sync/aai/aai-resources/service-instance/service-instance-53.json")));
 
 465     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 466         Matchers.contains("service-instance-58"), Mockito.anyString(),
 
 468     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 469         "/sync/aai/aai-resources/service-instance/service-instance-58.json")));
 
 472     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 473         Matchers.contains("service-instance-51"), Mockito.anyString(),
 
 475     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 476         "/sync/aai/aai-resources/service-instance/service-instance-51.json")));
 
 479     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 480         Matchers.contains("service-instance-56"), Mockito.anyString(),
 
 482     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 483         "/sync/aai/aai-resources/service-instance/service-instance-56.json")));
 
 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");
 
 497      * Our initial gets from elastic search should be record-not-found
 
 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));
 
 507     Mockito.when(searchServiceAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
 
 508         .thenReturn(new OperationResult(200, null));
 
 510     OperationState syncState = cerSynchronizer.doSync();
 
 511     assertEquals(OperationState.OK, syncState);
 
 513     assertNotNull(cerSynchronizer.getStatReport(false));
 
 514     assertNotNull(cerSynchronizer.getStatReport(true));
 
 516     cerSynchronizer.clearCache();
 
 517     cerSynchronizer.shutdown();
 
 523   public void validateSmallSyncWithRetries() throws Exception {
 
 525     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
 
 526         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
 
 528     cerSynchronizer.setAaiAdapter(aaiAdapter);
 
 529     cerSynchronizer.setSearchServiceAdapter(searchServiceAdapter);
 
 531     String nodesQueryResponse = TestResourceLoader
 
 532         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
 
 534     OperationResult entitySelfLinks = new OperationResult();
 
 536     entitySelfLinks.setResultCode(200);
 
 537     entitySelfLinks.setResult(nodesQueryResponse);
 
 539     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
 
 540         .thenReturn(entitySelfLinks);
 
 543         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
 
 544             Mockito.anyString()))
 
 546             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
 
 549         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
 
 550             Mockito.anyString()))
 
 552             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
 
 556             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
 
 558             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
 
 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")));
 
 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")));
 
 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")));
 
 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");
 
 586         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 587             Matchers.argThat(listContainsValue("service-instance-54"))))
 
 589             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
 
 592         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 593             Matchers.argThat(listContainsValue("service-instance-55"))))
 
 595             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
 
 598         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 599             Matchers.argThat(listContainsValue("service-instance-50"))))
 
 601             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
 
 604         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 605             Matchers.argThat(listContainsValue("service-instance-52"))))
 
 607             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
 
 610         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 611             Matchers.argThat(listContainsValue("service-instance-57"))))
 
 613             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
 
 616         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 617             Matchers.argThat(listContainsValue("service-instance-53"))))
 
 619             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
 
 622         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 623             Matchers.argThat(listContainsValue("service-instance-58"))))
 
 625             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
 
 628         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 629             Matchers.argThat(listContainsValue("service-instance-51"))))
 
 631             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
 
 634         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 635             Matchers.argThat(listContainsValue("service-instance-56"))))
 
 637             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 720     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 721         Matchers.contains("service-instance-59"), Mockito.anyString(),
 
 723     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 724         "/sync/aai/aai-resources/service-instance/service-instance-59.json")));
 
 727     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 728         Matchers.contains("service-instance-54"), Mockito.anyString(),
 
 730     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 731         "/sync/aai/aai-resources/service-instance/service-instance-54.json")));
 
 734     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 735         Matchers.contains("service-instance-55"), Mockito.anyString(),
 
 737     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 738         "/sync/aai/aai-resources/service-instance/service-instance-55.json")));
 
 741     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 742         Matchers.contains("service-instance-50"), Mockito.anyString(),
 
 744     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 745         "/sync/aai/aai-resources/service-instance/service-instance-50.json")));
 
 748     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 749         Matchers.contains("service-instance-52"), Mockito.anyString(),
 
 751     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 752         "/sync/aai/aai-resources/service-instance/service-instance-52.json")));
 
 755     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 756         Matchers.contains("service-instance-57"), Mockito.anyString(),
 
 758     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 759         "/sync/aai/aai-resources/service-instance/service-instance-57.json")));
 
 762     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 763         Matchers.contains("service-instance-53"), Mockito.anyString(),
 
 765     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 766         "/sync/aai/aai-resources/service-instance/service-instance-53.json")));
 
 769     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 770         Matchers.contains("service-instance-58"), Mockito.anyString(),
 
 772     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 773         "/sync/aai/aai-resources/service-instance/service-instance-58.json")));
 
 776     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 777         Matchers.contains("service-instance-51"), Mockito.anyString(),
 
 779     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 780         "/sync/aai/aai-resources/service-instance/service-instance-51.json")));
 
 783     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 784         Matchers.contains("service-instance-56"), Mockito.anyString(),
 
 786     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 787         "/sync/aai/aai-resources/service-instance/service-instance-56.json")));
 
 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");
 
 801      * Our initial gets from elastic search should be record-not-found
 
 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));
 
 812      * Cause version conflict errors on every put to test retry flow
 
 815     Mockito.when(searchServiceAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
 
 816         .thenReturn(new OperationResult(409, null));
 
 818     OperationState syncState = cerSynchronizer.doSync();
 
 819     assertEquals(OperationState.OK, syncState);
 
 821     assertNotNull(cerSynchronizer.getStatReport(false));
 
 822     assertNotNull(cerSynchronizer.getStatReport(true));
 
 824     cerSynchronizer.clearCache();
 
 825     cerSynchronizer.shutdown();
 
 835   public void validateSmallSyncWithEntityMerges() throws Exception {
 
 837     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
 
 838         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
 
 840     cerSynchronizer.setAaiAdapter(aaiAdapter);
 
 841     cerSynchronizer.setSearchServiceAdapter(searchServiceAdapter);
 
 843     String nodesQueryResponse = TestResourceLoader
 
 844         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
 
 846     OperationResult entitySelfLinks = new OperationResult();
 
 848     entitySelfLinks.setResultCode(200);
 
 849     entitySelfLinks.setResult(nodesQueryResponse);
 
 851     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
 
 852         .thenReturn(entitySelfLinks);
 
 855         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
 
 856             Mockito.anyString()))
 
 858             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
 
 861         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
 
 862             Mockito.anyString()))
 
 864             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
 
 868             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
 
 870             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
 
 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")));
 
 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")));
 
 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")));
 
 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");
 
 898         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 899             Matchers.argThat(listContainsValue("service-instance-54"))))
 
 901             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
 
 904         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 905             Matchers.argThat(listContainsValue("service-instance-55"))))
 
 907             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
 
 910         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 911             Matchers.argThat(listContainsValue("service-instance-50"))))
 
 913             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
 
 916         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 917             Matchers.argThat(listContainsValue("service-instance-52"))))
 
 919             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
 
 922         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 923             Matchers.argThat(listContainsValue("service-instance-57"))))
 
 925             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
 
 928         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 929             Matchers.argThat(listContainsValue("service-instance-53"))))
 
 931             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
 
 934         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 935             Matchers.argThat(listContainsValue("service-instance-58"))))
 
 937             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
 
 940         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 941             Matchers.argThat(listContainsValue("service-instance-51"))))
 
 943             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
 
 946         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 947             Matchers.argThat(listContainsValue("service-instance-56"))))
 
 949             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
 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")));
 
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")));
 
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")));
 
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")));
 
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");
 
1031      * Our initial gets from elastic search return 200 ok with a found entity document requiring a doc update
 
1033     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc1"), Mockito.any())).thenReturn(new OperationResult(200,
 
1034             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch1.json")));
 
1036     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc2"), Mockito.any())).thenReturn(new OperationResult(200,
 
1037             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch2.json")));
 
1039     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc3"), Mockito.any())).thenReturn(new OperationResult(200,
 
1040             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch3.json")));
 
1042     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc4"), Mockito.any())).thenReturn(new OperationResult(200,
 
1043             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch4.json")));
 
1045     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc5"), Mockito.any())).thenReturn(new OperationResult(200,
 
1046             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch5.json")));
 
1048     Mockito.when(searchServiceAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
 
1049             .thenReturn(new OperationResult(200, null));
 
1053     Mockito.when(searchServiceAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
 
1054         .thenReturn(new OperationResult(200, null));
 
1056     OperationState syncState = cerSynchronizer.doSync();
 
1057     assertEquals(OperationState.OK, syncState);
 
1059     assertNotNull(cerSynchronizer.getStatReport(false));
 
1060     assertNotNull(cerSynchronizer.getStatReport(true));
 
1062     cerSynchronizer.clearCache();
 
1063     cerSynchronizer.shutdown();