package io.searchbox.indices.aliases;
import io.searchbox.client.JestResult;
import io.searchbox.common.AbstractIntegrationTest;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesResponse;
import org.elasticsearch.test.ESIntegTestCase;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
/**
* @author cihat keser
*/
@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
public class GetAliasesIntegrationTest extends AbstractIntegrationTest {
private static final String INDEX_NAME = "aliases_test_index";
private static final String INDEX_NAME_2 = "aliases_test_index2";
private static final String INDEX_NAME_3 = "aliases_test_index3";
@Before
public void setup() {
createIndex(INDEX_NAME, INDEX_NAME_2, INDEX_NAME_3);
}
@Test
public void testGetAliases() throws IOException {
String alias = "myAlias000";
IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
IndicesAliasesRequest.AliasActions action = IndicesAliasesRequest.AliasActions.add().index(INDEX_NAME).alias(alias);
indicesAliasesRequest.addAliasAction(action);
IndicesAliasesResponse indicesAliasesResponse =
client().admin().indices().aliases(indicesAliasesRequest).actionGet(10, TimeUnit.SECONDS);
assertNotNull(indicesAliasesResponse);
assertTrue(indicesAliasesResponse.isAcknowledged());
GetAliases getAliases = new GetAliases.Builder().build();
JestResult result = client.execute(getAliases);
assertTrue(result.getErrorMessage(), result.isSucceeded());
assertEquals(1, result.getJsonObject().getAsJsonObject(INDEX_NAME).getAsJsonObject("aliases").entrySet().size());
assertEquals(0, result.getJsonObject().getAsJsonObject(INDEX_NAME_2).getAsJsonObject("aliases").entrySet().size());
}
@Test
public void testGetAliasesForSpecificIndex() throws IOException {
String alias = "myAlias000";
IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
IndicesAliasesRequest.AliasActions action = IndicesAliasesRequest.AliasActions.add().index(INDEX_NAME).alias(alias);
indicesAliasesRequest.addAliasAction(action);
IndicesAliasesResponse indicesAliasesResponse =
client().admin().indices().aliases(indicesAliasesRequest).actionGet(10, TimeUnit.SECONDS);
assertNotNull(indicesAliasesResponse);
assertTrue(indicesAliasesResponse.isAcknowledged());
GetAliases getAliases = new GetAliases.Builder().addIndex(INDEX_NAME).build();
JestResult result = client.execute(getAliases);
assertTrue(result.getErrorMessage(), result.isSucceeded());
assertEquals(1, result.getJsonObject().entrySet().size());
assertEquals(1, result.getJsonObject().getAsJsonObject(INDEX_NAME).getAsJsonObject("aliases").entrySet().size());
}
@Test
public void testGetAliasesForMultipleSpecificIndices() throws IOException {
GetAliases getAliases = new GetAliases.Builder().addIndex(INDEX_NAME).addIndex(INDEX_NAME_3).build();
JestResult result = client.execute(getAliases);
assertTrue(result.getErrorMessage(), result.isSucceeded());
assertEquals(2, result.getJsonObject().entrySet().size());
assertEquals(0, result.getJsonObject().getAsJsonObject(INDEX_NAME).getAsJsonObject("aliases").entrySet().size());
assertEquals(0, result.getJsonObject().getAsJsonObject(INDEX_NAME_3).getAsJsonObject("aliases").entrySet().size());
}
}