package io.searchbox.cluster; import io.searchbox.client.JestResult; import io.searchbox.common.AbstractIntegrationTest; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.hamcrest.core.AnyOf.anyOf; import static org.hamcrest.core.IsEqual.equalTo; /** * @author Neil Gentleman */ @ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1) public class HealthIntegrationTest extends AbstractIntegrationTest { @Test public void health() throws Exception { JestResult result = client.execute(new Health.Builder().build()); assertTrue(result.getErrorMessage(), result.isSucceeded()); assertThat( result.getJsonObject().get("status").getAsString(), anyOf(equalTo("green"), equalTo("yellow"), equalTo("red")) ); } @Test public void healthWithIndex() throws Exception { assertAcked(prepareCreate("test1").get()); final Health request = new Health.Builder() .addIndex("test1") .build(); JestResult result = client.execute(request); assertTrue(result.getErrorMessage(), result.isSucceeded()); assertThat( result.getJsonObject().get("status").getAsString(), anyOf(equalTo("green"), equalTo("yellow"), equalTo("red")) ); } @Test public void healthWaitForStatus() throws Exception { final Health request = new Health.Builder() .waitForStatus(Health.Status.GREEN) .build(); JestResult result = client.execute(request); assertTrue(result.getErrorMessage(), result.isSucceeded()); assertEquals("green", result.getJsonObject().get("status").getAsString()); } @Test public void healthWithTimeout() throws Exception { final Health request = new Health.Builder() .addIndex("test1") .timeout(1) .build(); JestResult result = client.execute(request); assertFalse(result.getErrorMessage(), result.isSucceeded()); assertEquals(408, result.getResponseCode()); } @Test public void healthOnlyLocal() throws Exception { final Health request = new Health.Builder() .local() .build(); JestResult result = client.execute(request); assertTrue(result.getErrorMessage(), result.isSucceeded()); assertThat( result.getJsonObject().get("status").getAsString(), anyOf(equalTo("green"), equalTo("yellow"), equalTo("red")) ); } @Test public void healthWaitForNoRelocatingShards() throws Exception { final Health request = new Health.Builder() .waitForNoRelocatingShards() .build(); JestResult result = client.execute(request); assertTrue(result.getErrorMessage(), result.isSucceeded()); assertThat( result.getJsonObject().get("status").getAsString(), anyOf(equalTo("green"), equalTo("yellow"), equalTo("red")) ); } @Test public void healthLevelShards() throws Exception { final Health request = new Health.Builder() .level(Health.Level.SHARDS) .build(); JestResult result = client.execute(request); assertTrue(result.getErrorMessage(), result.isSucceeded()); assertThat( result.getJsonObject().get("status").getAsString(), anyOf(equalTo("green"), equalTo("yellow"), equalTo("red")) ); } }