package org.stagemonitor.core.elasticsearch; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; import org.junit.Before; import org.junit.Test; import org.stagemonitor.core.CorePlugin; import org.stagemonitor.core.util.HttpClient; import java.io.IOException; import java.util.Collections; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class ElasticsearchClientAvailabilityCheckTest { private ElasticsearchClient elasticsearchClient; @Before public void setUp() throws Exception { final CorePlugin corePlugin = mock(CorePlugin.class); when(corePlugin.getElasticsearchUrl()).thenReturn("http://localhost:41234"); when(corePlugin.getElasticsearchUrls()).thenReturn(Collections.singletonList("http://localhost:41234")); when(corePlugin.getThreadPoolQueueCapacityLimit()).thenReturn(10000); elasticsearchClient = new ElasticsearchClient(corePlugin, new HttpClient(), 1); } @Test public void testNotAvailable() throws Exception { Thread.sleep(1100); assertFalse(elasticsearchClient.isElasticsearchAvailable()); Server server = new Server(41234); server.setHandler(new AbstractHandler() { @Override public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { baseRequest.setHandled(true); } }); server.start(); Thread.sleep(1100); assertTrue(elasticsearchClient.isElasticsearchAvailable()); server.stop(); } }