package com.silverforge.webconnector.integration.sync; import com.silverforge.webconnector.BuildConfig; import com.silverforge.webconnector.EndpointConnector; import com.silverforge.webconnector.definition.HttpsTest; import com.silverforge.webconnector.exceptions.SettingsIsNullException; import com.silverforge.webconnector.model.ConnectorSettings; import com.silverforge.webconnector.model.InvokeStringResult; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.robolectric.RobolectricGradleTestRunner; import org.robolectric.annotation.Config; import java.net.URISyntaxException; import java.net.UnknownHostException; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertThat; @RunWith(RobolectricGradleTestRunner.class) @Config(constants = BuildConfig.class, sdk = 21) @Category(value = HttpsTest.class) public class InvokeToHttpsEndpointTest { private static final String ELASTIC_URL = "https://mgj.east-us.azr.facetflow.io"; private static final String ELASTIC_APIKEY = "wihIilbbekmCeppKlgQXDwpSZEUekkk0"; private EndpointConnector connector; public InvokeToHttpsEndpointTest() { ConnectorSettings settings = ConnectorSettings .builder() .baseUrl(ELASTIC_URL) .userName(ELASTIC_APIKEY) .build(); try { connector = new EndpointConnector(settings); } catch (SettingsIsNullException | URISyntaxException e) { e.printStackTrace(); } } // region Happy path @Test public void invokeStringResultTest() { InvokeStringResult invokeStringResult = connector.get("/cities/_search"); assertThat(invokeStringResult, notNullValue()); assertThat(invokeStringResult.getAggregatedExceptions(), notNullValue()); assertThat(invokeStringResult.getAggregatedExceptions().size(), is(0)); assertThat(invokeStringResult.isSuccess(), is(true)); assertThat(invokeStringResult.getResult(), notNullValue()); } // endregion // region Sad path @Test public void invokeNoServerTest() throws SettingsIsNullException, URISyntaxException { ConnectorSettings settings = ConnectorSettings .builder() .baseUrl("https://www.almabarack.pre") .build(); EndpointConnector conn = new EndpointConnector(settings); InvokeStringResult invokeStringResult = conn.get(""); assertThat(invokeStringResult, notNullValue()); assertThat(invokeStringResult.isSuccess(), is(false)); assertThat(invokeStringResult.getResult(), nullValue()); assertThat(invokeStringResult.getStatusCode(), nullValue()); assertThat(invokeStringResult.getAggregatedExceptions(), notNullValue()); assertThat(invokeStringResult.getAggregatedExceptions().size(), greaterThan(0)); assertThat(invokeStringResult.getAggregatedExceptions().get(0), instanceOf(UnknownHostException.class)); } // endregion }