package com.silverforge.webconnector.integration.sync;
import com.silverforge.webconnector.BuildConfig;
import com.silverforge.webconnector.EndpointConnector;
import com.silverforge.webconnector.definition.HttpTest;
import com.silverforge.webconnector.exceptions.SettingsIsNullException;
import com.silverforge.webconnector.model.ConnectorSettings;
import com.silverforge.webconnector.model.InvokeBinaryResult;
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.*;
import static org.junit.Assert.assertThat;
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21)
@Category(value = HttpTest.class)
public class InvokeToHttpEndpointTest {
private EndpointConnector connector;
public InvokeToHttpEndpointTest() {
ConnectorSettings settings = ConnectorSettings
.builder()
.baseUrl("http://www.szerencsejatek.hu")
.build();
try {
connector = new EndpointConnector(settings);
} catch (SettingsIsNullException | URISyntaxException e) {
e.printStackTrace();
}
}
// region Happy path
@Test
public void invokeStringResultTest() {
InvokeStringResult invokeStringResult = connector.get("/xls/otos.csv");
assertThat(invokeStringResult, notNullValue());
assertThat(invokeStringResult.getAggregatedExceptions(), notNullValue());
assertThat(invokeStringResult.getAggregatedExceptions().size(), is(0));
assertThat(invokeStringResult.isSuccess(), is(true));
assertThat(invokeStringResult.getResult(), notNullValue());
}
@Test
public void invokeBinaryResultTest() {
InvokeBinaryResult invokeStringResult = connector.readBinaryContent("/xls/otos.xls");
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("http://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
}