package org.skywalking.apm.collector.worker.mock;
import org.elasticsearch.action.ListenableActionFuture;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.client.Client;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.reflect.Whitebox;
import org.skywalking.apm.collector.worker.storage.EsClient;
import static org.powermock.api.mockito.PowerMockito.mock;
import static org.powermock.api.mockito.PowerMockito.when;
/**
* @author pengys5
*/
public class MockEsBulkClient {
public IndexRequestBuilder indexRequestBuilder;
public void createMock() {
Client client = PowerMockito.mock(Client.class);
EsClient esClient = PowerMockito.mock(EsClient.class);
Whitebox.setInternalState(EsClient.class, "INSTANCE", esClient);
when(esClient.getClient()).thenReturn(client);
BulkRequestBuilder bulkRequestBuilder = mock(BulkRequestBuilder.class);
when(client.prepareBulk()).thenReturn(bulkRequestBuilder);
ListenableActionFuture listenableActionFuture = mock(ListenableActionFuture.class);
when(bulkRequestBuilder.execute()).thenReturn(listenableActionFuture);
BulkResponse responses = mock(BulkResponse.class);
when(listenableActionFuture.actionGet()).thenReturn(responses);
when(responses.hasFailures()).thenReturn(true);
indexRequestBuilder = mock(IndexRequestBuilder.class);
when(client.prepareIndex(Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenReturn(indexRequestBuilder);
when(indexRequestBuilder.setSource(Mockito.anyString())).thenReturn(indexRequestBuilder);
}
}