1 package org.onap.aai.sparky.crossentityreference.sync;
 
   3 import static org.junit.Assert.assertEquals;
 
   4 import static org.junit.Assert.assertNotNull;
 
   6 import java.util.ArrayList;
 
   7 import java.util.HashMap;
 
   8 import java.util.HashSet;
 
  13 import org.hamcrest.Matcher;
 
  14 import org.junit.Before;
 
  15 import org.junit.Test;
 
  16 import org.mockito.Matchers;
 
  17 import org.mockito.Mockito;
 
  18 import org.onap.aai.restclient.client.OperationResult;
 
  19 import org.onap.aai.sparky.config.oxm.CrossEntityReferenceLookup;
 
  20 import org.onap.aai.sparky.config.oxm.OxmEntityDescriptor;
 
  21 import org.onap.aai.sparky.config.oxm.OxmEntityLookup;
 
  22 import org.onap.aai.sparky.config.oxm.OxmModelProcessor;
 
  23 import org.onap.aai.sparky.config.oxm.SearchableEntityLookup;
 
  24 import org.onap.aai.sparky.dal.ActiveInventoryAdapter;
 
  25 import org.onap.aai.sparky.search.SearchServiceAdapter;
 
  26 import org.onap.aai.sparky.dal.rest.config.RestEndpointConfig;
 
  27 import org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig;
 
  28 import org.onap.aai.sparky.sync.config.NetworkStatisticsConfig;
 
  29 import org.onap.aai.sparky.sync.enumeration.OperationState;
 
  30 import org.onap.aai.sparky.util.StringCollectionContainsMatcher;
 
  31 import org.onap.aai.sparky.util.TestResourceLoader;
 
  33 import com.fasterxml.jackson.databind.ObjectMapper;
 
  35 public class CrossEntityReferenceSynchronizerTest {
 
  37   private static ObjectMapper mapper = new ObjectMapper();
 
  39   private CrossEntityReferenceSynchronizer cerSynchronizer;
 
  41   private ElasticSearchSchemaConfig esSchemaConfig;
 
  42   private NetworkStatisticsConfig aaiStatConfig;
 
  43   private NetworkStatisticsConfig esStatConfig;
 
  44   private OxmEntityLookup oxmEntityLookup;
 
  45   private SearchableEntityLookup searchableEntityLookup;
 
  46   private SearchServiceAdapter searchServiceAdapter;
 
  47   private ActiveInventoryAdapter aaiAdapter;
 
  48   private CrossEntityReferenceLookup cerLookup;
 
  49   private RestEndpointConfig aaiRestEndPointConfig;
 
  52   public void init() throws Exception {
 
  54     esSchemaConfig = new ElasticSearchSchemaConfig();
 
  55     esSchemaConfig.setIndexDocType("default");
 
  56     esSchemaConfig.setIndexMappingsFileName(null);
 
  57     esSchemaConfig.setIndexName("aggregation-index-name");
 
  58     esSchemaConfig.setIndexSettingsFileName(null);
 
  61     aaiStatConfig = new NetworkStatisticsConfig();
 
  63     aaiStatConfig.setNumSamplesPerThreadForRunningAverage(100);
 
  65     aaiStatConfig.setBytesHistogramLabel("[Response Size In Bytes]");
 
  66     aaiStatConfig.setBytesHistogramMaxYAxis(1000000L);
 
  67     aaiStatConfig.setBytesHistogramNumBins(20);
 
  68     aaiStatConfig.setBytesHistogramNumDecimalPoints(2);
 
  70     aaiStatConfig.setQueueLengthHistogramLabel("[Queue Item Length]");
 
  71     aaiStatConfig.setQueueLengthHistogramMaxYAxis(20000);
 
  72     aaiStatConfig.setQueueLengthHistogramNumBins(20);
 
  73     aaiStatConfig.setQueueLengthHistogramNumDecimalPoints(2);
 
  75     aaiStatConfig.setTaskAgeHistogramLabel("[Task Age In Ms]");
 
  76     aaiStatConfig.setTaskAgeHistogramMaxYAxis(600000L);
 
  77     aaiStatConfig.setTaskAgeHistogramNumBins(20);
 
  78     aaiStatConfig.setTaskAgeHistogramNumDecimalPoints(2);
 
  80     aaiStatConfig.setResponseTimeHistogramLabel("[Response Time In Ms]");
 
  81     aaiStatConfig.setResponseTimeHistogramMaxYAxis(1000L);
 
  82     aaiStatConfig.setResponseTimeHistogramNumBins(20);
 
  83     aaiStatConfig.setResponseTimeHistogramNumDecimalPoints(2);
 
  85     aaiStatConfig.setTpsHistogramLabel("[Transactions Per Second]");
 
  86     aaiStatConfig.setTpsHistogramMaxYAxis(100);
 
  87     aaiStatConfig.setTpsHistogramNumBins(20);
 
  88     aaiStatConfig.setTpsHistogramNumDecimalPoints(2);
 
  90     esStatConfig = new NetworkStatisticsConfig();
 
  92     esStatConfig.setNumSamplesPerThreadForRunningAverage(100);
 
  94     esStatConfig.setBytesHistogramLabel("[Response Size In Bytes]");
 
  95     esStatConfig.setBytesHistogramMaxYAxis(1000000L);
 
  96     esStatConfig.setBytesHistogramNumBins(20);
 
  97     esStatConfig.setBytesHistogramNumDecimalPoints(2);
 
  99     esStatConfig.setQueueLengthHistogramLabel("[Queue Item Length]");
 
 100     esStatConfig.setQueueLengthHistogramMaxYAxis(20000);
 
 101     esStatConfig.setQueueLengthHistogramNumBins(20);
 
 102     esStatConfig.setQueueLengthHistogramNumDecimalPoints(2);
 
 104     esStatConfig.setTaskAgeHistogramLabel("[Task Age In Ms]");
 
 105     esStatConfig.setTaskAgeHistogramMaxYAxis(600000L);
 
 106     esStatConfig.setTaskAgeHistogramNumBins(20);
 
 107     esStatConfig.setTaskAgeHistogramNumDecimalPoints(2);
 
 109     esStatConfig.setResponseTimeHistogramLabel("[Response Time In Ms]");
 
 110     esStatConfig.setResponseTimeHistogramMaxYAxis(10000L);
 
 111     esStatConfig.setResponseTimeHistogramNumBins(20);
 
 112     esStatConfig.setResponseTimeHistogramNumDecimalPoints(2);
 
 114     esStatConfig.setTpsHistogramLabel("[Transactions Per Second]");
 
 115     esStatConfig.setTpsHistogramMaxYAxis(100);
 
 116     esStatConfig.setTpsHistogramNumBins(20);
 
 117     esStatConfig.setTpsHistogramNumDecimalPoints(2);
 
 119     oxmEntityLookup = new OxmEntityLookup();
 
 121     searchServiceAdapter = Mockito.mock(SearchServiceAdapter.class);
 
 122     aaiAdapter = Mockito.mock(ActiveInventoryAdapter.class);
 
 125     Set<OxmModelProcessor> processors = new HashSet<OxmModelProcessor>();
 
 127     processors.add(oxmEntityLookup);
 
 130     Map<String, OxmEntityDescriptor> oxmEntityDescriptors =
 
 131         new HashMap<String, OxmEntityDescriptor>();
 
 133     OxmEntityDescriptor genericVnfDescriptor = new OxmEntityDescriptor();
 
 134     genericVnfDescriptor.setEntityName("generic-vnf");
 
 135     List<String> pkeyNames = new ArrayList<String>();
 
 136     pkeyNames.add("vnf-name");
 
 138     genericVnfDescriptor.setPrimaryKeyAttributeNames(pkeyNames);
 
 140     oxmEntityDescriptors.put("generic-vnf", genericVnfDescriptor);
 
 143     oxmEntityLookup.setEntityDescriptors(oxmEntityDescriptors);
 
 145     cerLookup = new CrossEntityReferenceLookup();
 
 146     processors.add(cerLookup);
 
 148     searchableEntityLookup = new SearchableEntityLookup();
 
 149     processors.add(searchableEntityLookup);
 
 153     aaiRestEndPointConfig = new RestEndpointConfig();
 
 154     aaiRestEndPointConfig.setNumRequestRetries(5);
 
 156     Mockito.when(aaiAdapter.getEndpointConfig()).thenReturn(aaiRestEndPointConfig);
 
 161   public void validateBasicConstruction() throws Exception {
 
 163     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
 
 164         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
 
 166     cerSynchronizer.setAaiAdapter(aaiAdapter);
 
 167     cerSynchronizer.setSearchServiceAdapter(searchServiceAdapter);
 
 169     assertNotNull(cerSynchronizer.getAaiAdapter());
 
 170     assertNotNull(cerSynchronizer.getSearchServiceAdapter());
 
 174   private Matcher<List<String>> listContainsValue(String expectedValue) {
 
 175     return new StringCollectionContainsMatcher(expectedValue);
 
 179   public void validateSmallSync() throws Exception {
 
 181     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
 
 182         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
 
 184     cerSynchronizer.setAaiAdapter(aaiAdapter);
 
 185     cerSynchronizer.setSearchServiceAdapter(searchServiceAdapter);
 
 187     String nodesQueryResponse = TestResourceLoader
 
 188         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
 
 190     OperationResult entitySelfLinks = new OperationResult();
 
 192     entitySelfLinks.setResultCode(200);
 
 193     entitySelfLinks.setResult(nodesQueryResponse);
 
 195     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
 
 196         .thenReturn(entitySelfLinks);
 
 199         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
 
 200             Mockito.anyString()))
 
 202             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
 
 205         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
 
 206             Mockito.anyString()))
 
 208             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
 
 212             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
 
 214             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
 
 217         .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 218             Matchers.contains("service-subscription-2"), Mockito.anyString(),
 
 219             Mockito.anyInt(),Mockito.anyString()))
 
 220         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 221             "/sync/aai/service-subscription-service-subscription-2.json")));
 
 224         .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 225             Matchers.contains("service-subscription-1"), Mockito.anyString(),
 
 226             Mockito.anyInt(),Mockito.anyString()))
 
 227         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 228             "/sync/aai/service-subscription-service-subscription-1.json")));
 
 231         .when(aaiAdapter.queryActiveInventoryWithRetries(Matchers.contains("service-subscription-3"),
 
 232             Mockito.anyString(), Mockito.anyInt(),Mockito.anyString()))
 
 233         .thenReturn(new OperationResult(200, TestResourceLoader
 
 234             .getTestResourceDataJson("/sync/aai/service-subscription-service-subscription-3.json")));
 
 237         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 238             Matchers.argThat(listContainsValue("service-instance-59"))))
 
 239         .thenReturn("https://server.proxy:8443/aai/v11/search/generic-query/service-instance-59");
 
 242         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 243             Matchers.argThat(listContainsValue("service-instance-54"))))
 
 245             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
 
 248         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 249             Matchers.argThat(listContainsValue("service-instance-55"))))
 
 251             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
 
 254         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 255             Matchers.argThat(listContainsValue("service-instance-50"))))
 
 257             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
 
 260         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 261             Matchers.argThat(listContainsValue("service-instance-52"))))
 
 263             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
 
 266         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 267             Matchers.argThat(listContainsValue("service-instance-57"))))
 
 269             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
 
 272         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 273             Matchers.argThat(listContainsValue("service-instance-53"))))
 
 275             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
 
 278         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 279             Matchers.argThat(listContainsValue("service-instance-58"))))
 
 281             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
 
 284         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 285             Matchers.argThat(listContainsValue("service-instance-51"))))
 
 287             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
 
 290         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 291             Matchers.argThat(listContainsValue("service-instance-56"))))
 
 293             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
 
 299     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 300         Matchers.contains("generic-query/service-instance-59"), Mockito.anyString(),
 
 301         Mockito.anyInt(),Mockito.anyString()))
 
 302     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 303         "/sync/aai/aai-traversal/generic-query/service-instance-59.json")));
 
 306     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 307         Matchers.contains("generic-query/service-instance-54"), Mockito.anyString(),
 
 308         Mockito.anyInt(),Mockito.anyString()))
 
 309     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 310         "/sync/aai/aai-traversal/generic-query/service-instance-54.json")));
 
 313     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 314         Matchers.contains("generic-query/service-instance-55"), Mockito.anyString(),
 
 315         Mockito.anyInt(),Mockito.anyString()))
 
 316     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 317         "/sync/aai/aai-traversal/generic-query/service-instance-55.json")));
 
 320     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 321         Matchers.contains("generic-query/service-instance-50"), Mockito.anyString(),
 
 322         Mockito.anyInt(),Mockito.anyString()))
 
 323     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 324         "/sync/aai/aai-traversal/generic-query/service-instance-50.json")));
 
 327     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 328         Matchers.contains("generic-query/service-instance-52"), Mockito.anyString(),
 
 329         Mockito.anyInt(),Mockito.anyString()))
 
 330     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 331         "/sync/aai/aai-traversal/generic-query/service-instance-52.json")));
 
 334     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 335         Matchers.contains("generic-query/service-instance-57"), Mockito.anyString(),
 
 336         Mockito.anyInt(),Mockito.anyString()))
 
 337     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 338         "/sync/aai/aai-traversal/generic-query/service-instance-57.json")));
 
 341     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 342         Matchers.contains("generic-query/service-instance-53"), Mockito.anyString(),
 
 343         Mockito.anyInt(),Mockito.anyString()))
 
 344     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 345         "/sync/aai/aai-traversal/generic-query/service-instance-53.json")));
 
 348     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 349         Matchers.contains("generic-query/service-instance-58"), Mockito.anyString(),
 
 350         Mockito.anyInt(),Mockito.anyString()))
 
 351     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 352         "/sync/aai/aai-traversal/generic-query/service-instance-58.json")));
 
 355     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 356         Matchers.contains("generic-query/service-instance-51"), Mockito.anyString(),
 
 357         Mockito.anyInt(),Mockito.anyString()))
 
 358     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 359         "/sync/aai/aai-traversal/generic-query/service-instance-51.json")));
 
 362     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 363         Matchers.contains("generic-query/service-instance-56"), Mockito.anyString(),
 
 364         Mockito.anyInt(),Mockito.anyString()))
 
 365     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 366         "/sync/aai/aai-traversal/generic-query/service-instance-56.json")));
 
 376     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 377         Matchers.contains("service-instance-59"), Mockito.anyString(),
 
 379     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 380         "/sync/aai/aai-resources/service-instance/service-instance-59.json")));
 
 383     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 384         Matchers.contains("service-instance-54"), Mockito.anyString(),
 
 386     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 387         "/sync/aai/aai-resources/service-instance/service-instance-54.json")));
 
 390     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 391         Matchers.contains("service-instance-55"), Mockito.anyString(),
 
 393     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 394         "/sync/aai/aai-resources/service-instance/service-instance-55.json")));
 
 397     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 398         Matchers.contains("service-instance-50"), Mockito.anyString(),
 
 400     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 401         "/sync/aai/aai-resources/service-instance/service-instance-50.json")));
 
 404     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 405         Matchers.contains("service-instance-52"), Mockito.anyString(),
 
 407     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 408         "/sync/aai/aai-resources/service-instance/service-instance-52.json")));
 
 411     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 412         Matchers.contains("service-instance-57"), Mockito.anyString(),
 
 414     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 415         "/sync/aai/aai-resources/service-instance/service-instance-57.json")));
 
 418     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 419         Matchers.contains("service-instance-53"), Mockito.anyString(),
 
 421     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 422         "/sync/aai/aai-resources/service-instance/service-instance-53.json")));
 
 425     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 426         Matchers.contains("service-instance-58"), Mockito.anyString(),
 
 428     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 429         "/sync/aai/aai-resources/service-instance/service-instance-58.json")));
 
 432     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 433         Matchers.contains("service-instance-51"), Mockito.anyString(),
 
 435     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 436         "/sync/aai/aai-resources/service-instance/service-instance-51.json")));
 
 439     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 440         Matchers.contains("service-instance-56"), Mockito.anyString(),
 
 442     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 443         "/sync/aai/aai-resources/service-instance/service-instance-56.json")));
 
 451     Mockito.when(searchServiceAdapter.buildSearchServiceDocUrl(Mockito.anyString(), Mockito.anyString()))
 
 452         .thenReturn("http://server.proxy:9200/myindex/mytype/doc1",
 
 453             "http://server.proxy:9200/myindex/mytype/doc2",
 
 454             "http://server.proxy:9200/myindex/mytype/doc3");
 
 457      * Our initial gets from elastic search should be record-not-found
 
 459     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc1"), Mockito.any()))
 
 460         .thenReturn(new OperationResult(404, null));
 
 461     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc2"), Mockito.any()))
 
 462         .thenReturn(new OperationResult(404, null));
 
 463     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc3"), Mockito.any()))
 
 464         .thenReturn(new OperationResult(404, null));
 
 467     Mockito.when(searchServiceAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
 
 468         .thenReturn(new OperationResult(200, null));
 
 470     OperationState syncState = cerSynchronizer.doSync();
 
 471     assertEquals(OperationState.OK, syncState);
 
 473     assertNotNull(cerSynchronizer.getStatReport(false));
 
 474     assertNotNull(cerSynchronizer.getStatReport(true));
 
 476     cerSynchronizer.clearCache();
 
 477     cerSynchronizer.shutdown();
 
 483   public void validateSmallSyncWithRetries() throws Exception {
 
 485     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
 
 486         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
 
 488     cerSynchronizer.setAaiAdapter(aaiAdapter);
 
 489     cerSynchronizer.setSearchServiceAdapter(searchServiceAdapter);
 
 491     String nodesQueryResponse = TestResourceLoader
 
 492         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
 
 494     OperationResult entitySelfLinks = new OperationResult();
 
 496     entitySelfLinks.setResultCode(200);
 
 497     entitySelfLinks.setResult(nodesQueryResponse);
 
 499     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
 
 500         .thenReturn(entitySelfLinks);
 
 503         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
 
 504             Mockito.anyString()))
 
 506             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
 
 509         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
 
 510             Mockito.anyString()))
 
 512             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
 
 516             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
 
 518             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
 
 521         .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 522             Matchers.contains("service-subscription-2"), Mockito.anyString(),
 
 523             Mockito.anyInt(),Mockito.anyString()))
 
 524         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 525             "/sync/aai/service-subscription-service-subscription-2.json")));
 
 528         .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 529             Matchers.contains("service-subscription-1"), Mockito.anyString(),
 
 530             Mockito.anyInt(),Mockito.anyString()))
 
 531         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 532             "/sync/aai/service-subscription-service-subscription-1.json")));
 
 535         .when(aaiAdapter.queryActiveInventoryWithRetries(Matchers.contains("service-subscription-3"),
 
 536             Mockito.anyString(), Mockito.anyInt(),Mockito.anyString()))
 
 537         .thenReturn(new OperationResult(200, TestResourceLoader
 
 538             .getTestResourceDataJson("/sync/aai/service-subscription-service-subscription-3.json")));
 
 541         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 542             Matchers.argThat(listContainsValue("service-instance-59"))))
 
 543         .thenReturn("https://server.proxy:8443/aai/v11/search/generic-query/service-instance-59");
 
 546         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 547             Matchers.argThat(listContainsValue("service-instance-54"))))
 
 549             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
 
 552         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 553             Matchers.argThat(listContainsValue("service-instance-55"))))
 
 555             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
 
 558         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 559             Matchers.argThat(listContainsValue("service-instance-50"))))
 
 561             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
 
 564         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 565             Matchers.argThat(listContainsValue("service-instance-52"))))
 
 567             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
 
 570         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 571             Matchers.argThat(listContainsValue("service-instance-57"))))
 
 573             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
 
 576         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 577             Matchers.argThat(listContainsValue("service-instance-53"))))
 
 579             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
 
 582         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 583             Matchers.argThat(listContainsValue("service-instance-58"))))
 
 585             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
 
 588         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 589             Matchers.argThat(listContainsValue("service-instance-51"))))
 
 591             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
 
 594         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 595             Matchers.argThat(listContainsValue("service-instance-56"))))
 
 597             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
 
 603     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 604         Matchers.contains("generic-query/service-instance-59"), Mockito.anyString(),
 
 605         Mockito.anyInt(),Mockito.anyString()))
 
 606     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 607         "/sync/aai/aai-traversal/generic-query/service-instance-59.json")));
 
 610     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 611         Matchers.contains("generic-query/service-instance-54"), Mockito.anyString(),
 
 612         Mockito.anyInt(),Mockito.anyString()))
 
 613     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 614         "/sync/aai/aai-traversal/generic-query/service-instance-54.json")));
 
 617     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 618         Matchers.contains("generic-query/service-instance-55"), Mockito.anyString(),
 
 619         Mockito.anyInt(),Mockito.anyString()))
 
 620     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 621         "/sync/aai/aai-traversal/generic-query/service-instance-55.json")));
 
 624     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 625         Matchers.contains("generic-query/service-instance-50"), Mockito.anyString(),
 
 626         Mockito.anyInt(),Mockito.anyString()))
 
 627     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 628         "/sync/aai/aai-traversal/generic-query/service-instance-50.json")));
 
 631     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 632         Matchers.contains("generic-query/service-instance-52"), Mockito.anyString(),
 
 633         Mockito.anyInt(),Mockito.anyString()))
 
 634     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 635         "/sync/aai/aai-traversal/generic-query/service-instance-52.json")));
 
 638     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 639         Matchers.contains("generic-query/service-instance-57"), Mockito.anyString(),
 
 640         Mockito.anyInt(),Mockito.anyString()))
 
 641     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 642         "/sync/aai/aai-traversal/generic-query/service-instance-57.json")));
 
 645     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 646         Matchers.contains("generic-query/service-instance-53"), Mockito.anyString(),
 
 647         Mockito.anyInt(),Mockito.anyString()))
 
 648     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 649         "/sync/aai/aai-traversal/generic-query/service-instance-53.json")));
 
 652     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 653         Matchers.contains("generic-query/service-instance-58"), Mockito.anyString(),
 
 654         Mockito.anyInt(),Mockito.anyString()))
 
 655     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 656         "/sync/aai/aai-traversal/generic-query/service-instance-58.json")));
 
 659     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 660         Matchers.contains("generic-query/service-instance-51"), Mockito.anyString(),
 
 661         Mockito.anyInt(),Mockito.anyString()))
 
 662     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 663         "/sync/aai/aai-traversal/generic-query/service-instance-51.json")));
 
 666     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 667         Matchers.contains("generic-query/service-instance-56"), Mockito.anyString(),
 
 668         Mockito.anyInt(),Mockito.anyString()))
 
 669     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 670         "/sync/aai/aai-traversal/generic-query/service-instance-56.json")));
 
 680     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 681         Matchers.contains("service-instance-59"), Mockito.anyString(),
 
 683     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 684         "/sync/aai/aai-resources/service-instance/service-instance-59.json")));
 
 687     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 688         Matchers.contains("service-instance-54"), Mockito.anyString(),
 
 690     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 691         "/sync/aai/aai-resources/service-instance/service-instance-54.json")));
 
 694     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 695         Matchers.contains("service-instance-55"), Mockito.anyString(),
 
 697     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 698         "/sync/aai/aai-resources/service-instance/service-instance-55.json")));
 
 701     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 702         Matchers.contains("service-instance-50"), Mockito.anyString(),
 
 704     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 705         "/sync/aai/aai-resources/service-instance/service-instance-50.json")));
 
 708     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 709         Matchers.contains("service-instance-52"), Mockito.anyString(),
 
 711     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 712         "/sync/aai/aai-resources/service-instance/service-instance-52.json")));
 
 715     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 716         Matchers.contains("service-instance-57"), Mockito.anyString(),
 
 718     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 719         "/sync/aai/aai-resources/service-instance/service-instance-57.json")));
 
 722     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 723         Matchers.contains("service-instance-53"), Mockito.anyString(),
 
 725     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 726         "/sync/aai/aai-resources/service-instance/service-instance-53.json")));
 
 729     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 730         Matchers.contains("service-instance-58"), Mockito.anyString(),
 
 732     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 733         "/sync/aai/aai-resources/service-instance/service-instance-58.json")));
 
 736     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 737         Matchers.contains("service-instance-51"), Mockito.anyString(),
 
 739     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 740         "/sync/aai/aai-resources/service-instance/service-instance-51.json")));
 
 743     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 744         Matchers.contains("service-instance-56"), Mockito.anyString(),
 
 746     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 747         "/sync/aai/aai-resources/service-instance/service-instance-56.json")));
 
 755     Mockito.when(searchServiceAdapter.buildSearchServiceDocUrl(Mockito.anyString(), Mockito.anyString()))
 
 756         .thenReturn("http://server.proxy:9200/myindex/mytype/doc1",
 
 757             "http://server.proxy:9200/myindex/mytype/doc2",
 
 758             "http://server.proxy:9200/myindex/mytype/doc3");
 
 761      * Our initial gets from elastic search should be record-not-found
 
 763     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc1"), Mockito.any()))
 
 764         .thenReturn(new OperationResult(404, null));
 
 765     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc2"), Mockito.any()))
 
 766         .thenReturn(new OperationResult(404, null));
 
 767     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc3"), Mockito.any()))
 
 768         .thenReturn(new OperationResult(404, null));
 
 772      * Cause version conflict errors on every put to test retry flow
 
 775     Mockito.when(searchServiceAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
 
 776         .thenReturn(new OperationResult(409, null));
 
 778     OperationState syncState = cerSynchronizer.doSync();
 
 779     assertEquals(OperationState.OK, syncState);
 
 781     assertNotNull(cerSynchronizer.getStatReport(false));
 
 782     assertNotNull(cerSynchronizer.getStatReport(true));
 
 784     cerSynchronizer.clearCache();
 
 785     cerSynchronizer.shutdown();
 
 795   public void validateSmallSyncWithEntityMerges() throws Exception {
 
 797     cerSynchronizer = new CrossEntityReferenceSynchronizer(esSchemaConfig, 5, 5, 5, aaiStatConfig,
 
 798         esStatConfig, cerLookup, oxmEntityLookup, searchableEntityLookup);
 
 800     cerSynchronizer.setAaiAdapter(aaiAdapter);
 
 801     cerSynchronizer.setSearchServiceAdapter(searchServiceAdapter);
 
 803     String nodesQueryResponse = TestResourceLoader
 
 804         .getTestResourceDataJson("/sync/aai/activeInventory_service-subscription_nodesQuery_response.json");
 
 806     OperationResult entitySelfLinks = new OperationResult();
 
 808     entitySelfLinks.setResultCode(200);
 
 809     entitySelfLinks.setResult(nodesQueryResponse);
 
 811     Mockito.when(aaiAdapter.getSelfLinksByEntityType("service-subscription"))
 
 812         .thenReturn(entitySelfLinks);
 
 815         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-1"),
 
 816             Mockito.anyString()))
 
 818             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-1/service-subscriptions/service-subscription/service-subscription-1");
 
 821         .when(aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-2"),
 
 822             Mockito.anyString()))
 
 824             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-2/service-subscriptions/service-subscription/service-subscription-2");
 
 828             aaiAdapter.repairSelfLink(Matchers.contains("service-subscription-3"), Mockito.anyString()))
 
 830             "https://server.proxy:8443/aai/v11/business/customers/customer/customer-3/service-subscriptions/service-subscription/service-subscription-3");
 
 833         .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 834             Matchers.contains("service-subscription-2"), Mockito.anyString(),
 
 835             Mockito.anyInt(),Mockito.anyString()))
 
 836         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 837             "/sync/aai/service-subscription-service-subscription-2.json")));
 
 840         .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 841             Matchers.contains("service-subscription-1"), Mockito.anyString(),
 
 842             Mockito.anyInt(),Mockito.anyString()))
 
 843         .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 844             "/sync/aai/service-subscription-service-subscription-1.json")));
 
 847         .when(aaiAdapter.queryActiveInventoryWithRetries(Matchers.contains("service-subscription-3"),
 
 848             Mockito.anyString(), Mockito.anyInt(),Mockito.anyString()))
 
 849         .thenReturn(new OperationResult(200, TestResourceLoader
 
 850             .getTestResourceDataJson("/sync/aai/service-subscription-service-subscription-3.json")));
 
 853         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 854             Matchers.argThat(listContainsValue("service-instance-59"))))
 
 855         .thenReturn("https://server.proxy:8443/aai/v11/search/generic-query/service-instance-59");
 
 858         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 859             Matchers.argThat(listContainsValue("service-instance-54"))))
 
 861             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-54");
 
 864         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 865             Matchers.argThat(listContainsValue("service-instance-55"))))
 
 867             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-55");
 
 870         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 871             Matchers.argThat(listContainsValue("service-instance-50"))))
 
 873             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-50");
 
 876         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 877             Matchers.argThat(listContainsValue("service-instance-52"))))
 
 879             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-52");
 
 882         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 883             Matchers.argThat(listContainsValue("service-instance-57"))))
 
 885             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-57");
 
 888         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 889             Matchers.argThat(listContainsValue("service-instance-53"))))
 
 891             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-53");
 
 894         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 895             Matchers.argThat(listContainsValue("service-instance-58"))))
 
 897             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-58");
 
 900         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 901             Matchers.argThat(listContainsValue("service-instance-51"))))
 
 903             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-51");
 
 906         .when(aaiAdapter.getGenericQueryForSelfLink(Matchers.contains("service-instance"),
 
 907             Matchers.argThat(listContainsValue("service-instance-56"))))
 
 909             "https://server.proxy:8443/aai/v11/search/generic-query/service-instance-56");
 
 915     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 916         Matchers.contains("generic-query/service-instance-59"), Mockito.anyString(),
 
 917         Mockito.anyInt(),Mockito.anyString()))
 
 918     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 919         "/sync/aai/aai-traversal/generic-query/service-instance-59.json")));
 
 922     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 923         Matchers.contains("generic-query/service-instance-54"), Mockito.anyString(),
 
 924         Mockito.anyInt(),Mockito.anyString()))
 
 925     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 926         "/sync/aai/aai-traversal/generic-query/service-instance-54.json")));
 
 929     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 930         Matchers.contains("generic-query/service-instance-55"), Mockito.anyString(),
 
 931         Mockito.anyInt(),Mockito.anyString()))
 
 932     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 933         "/sync/aai/aai-traversal/generic-query/service-instance-55.json")));
 
 936     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 937         Matchers.contains("generic-query/service-instance-50"), Mockito.anyString(),
 
 938         Mockito.anyInt(),Mockito.anyString()))
 
 939     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 940         "/sync/aai/aai-traversal/generic-query/service-instance-50.json")));
 
 943     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 944         Matchers.contains("generic-query/service-instance-52"), Mockito.anyString(),
 
 945         Mockito.anyInt(),Mockito.anyString()))
 
 946     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 947         "/sync/aai/aai-traversal/generic-query/service-instance-52.json")));
 
 950     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 951         Matchers.contains("generic-query/service-instance-57"), Mockito.anyString(),
 
 952         Mockito.anyInt(),Mockito.anyString()))
 
 953     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 954         "/sync/aai/aai-traversal/generic-query/service-instance-57.json")));
 
 957     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 958         Matchers.contains("generic-query/service-instance-53"), Mockito.anyString(),
 
 959         Mockito.anyInt(),Mockito.anyString()))
 
 960     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 961         "/sync/aai/aai-traversal/generic-query/service-instance-53.json")));
 
 964     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 965         Matchers.contains("generic-query/service-instance-58"), Mockito.anyString(),
 
 966         Mockito.anyInt(),Mockito.anyString()))
 
 967     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 968         "/sync/aai/aai-traversal/generic-query/service-instance-58.json")));
 
 971     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 972         Matchers.contains("generic-query/service-instance-51"), Mockito.anyString(),
 
 973         Mockito.anyInt(),Mockito.anyString()))
 
 974     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 975         "/sync/aai/aai-traversal/generic-query/service-instance-51.json")));
 
 978     .when(aaiAdapter.queryActiveInventoryWithRetries(
 
 979         Matchers.contains("generic-query/service-instance-56"), Mockito.anyString(),
 
 980         Mockito.anyInt(),Mockito.anyString()))
 
 981     .thenReturn(new OperationResult(200, TestResourceLoader.getTestResourceDataJson(
 
 982         "/sync/aai/aai-traversal/generic-query/service-instance-56.json")));
 
 985     Mockito.when(searchServiceAdapter.buildSearchServiceDocUrl(Mockito.anyString(), Mockito.anyString()))
 
 986         .thenReturn("http://server.proxy:9200/myindex/mytype/doc1",
 
 987             "http://server.proxy:9200/myindex/mytype/doc2",
 
 988             "http://server.proxy:9200/myindex/mytype/doc3");
 
 991      * Our initial gets from elastic search return 200 ok with a found entity document requiring a doc update
 
 993     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc1"), Mockito.any())).thenReturn(new OperationResult(200,
 
 994             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch1.json")));
 
 996     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc2"), Mockito.any())).thenReturn(new OperationResult(200,
 
 997             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch2.json")));
 
 999     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc3"), Mockito.any())).thenReturn(new OperationResult(200,
 
1000             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch3.json")));
 
1002     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc4"), Mockito.any())).thenReturn(new OperationResult(200,
 
1003             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch4.json")));
 
1005     Mockito.when(searchServiceAdapter.doGet(Matchers.contains("doc5"), Mockito.any())).thenReturn(new OperationResult(200,
 
1006             TestResourceLoader.getTestResourceDataJson("/sync/ElasticSearch/docEntityFromElasticSearch5.json")));
 
1008     Mockito.when(searchServiceAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
 
1009             .thenReturn(new OperationResult(200, null));
 
1013     Mockito.when(searchServiceAdapter.doPut(Matchers.contains("doc"), Mockito.any(), Mockito.any()))
 
1014         .thenReturn(new OperationResult(200, null));
 
1016     OperationState syncState = cerSynchronizer.doSync();
 
1017     assertEquals(OperationState.OK, syncState);
 
1019     assertNotNull(cerSynchronizer.getStatReport(false));
 
1020     assertNotNull(cerSynchronizer.getStatReport(true));
 
1022     cerSynchronizer.clearCache();
 
1023     cerSynchronizer.shutdown();