Search in sources :

Example 6 with HttpGetResult

use of org.odk.collect.android.openrosa.HttpGetResult in project collect by opendatakit.

the class OpenRosaFormSourceTest method fetchFormList_whenThereIsA404_throwsUnreachableApiException.

@Test
public void fetchFormList_whenThereIsA404_throwsUnreachableApiException() throws Exception {
    OpenRosaFormSource formListApi = new OpenRosaFormSource("http://blah.com", httpInterface, webCredentialsUtils, responseParser);
    try {
        when(httpInterface.executeGetRequest(any(), any(), any())).thenReturn(new HttpGetResult(null, new HashMap<>(), "hash", 404));
        formListApi.fetchFormList();
        fail("No exception thrown!");
    } catch (FormSourceException.Unreachable e) {
        assertThat(e.getServerUrl(), is("http://blah.com"));
    }
}
Also used : FormSourceException(org.odk.collect.forms.FormSourceException) HashMap(java.util.HashMap) OpenRosaFormSource(org.odk.collect.android.openrosa.OpenRosaFormSource) HttpGetResult(org.odk.collect.android.openrosa.HttpGetResult) Test(org.junit.Test)

Example 7 with HttpGetResult

use of org.odk.collect.android.openrosa.HttpGetResult in project collect by opendatakit.

the class OpenRosaFormSourceTest method fetchManifest_whenOpenRosaResponse_whenParserFails_throwsParseError.

@Test
public void fetchManifest_whenOpenRosaResponse_whenParserFails_throwsParseError() throws Exception {
    OpenRosaFormSource formListApi = new OpenRosaFormSource("http://blah.com", httpInterface, webCredentialsUtils, responseParser);
    try {
        when(httpInterface.executeGetRequest(any(), any(), any())).thenReturn(new HttpGetResult(new ByteArrayInputStream("<xml></xml>".getBytes()), new HashMap<String, String>() {

            {
                put(OpenRosaConstants.VERSION_HEADER, "1.0");
            }
        }, "hash", 200));
        when(responseParser.parseManifest(any())).thenReturn(null);
        formListApi.fetchManifest("http://blah.com/manifest");
        fail("No exception thrown!");
    } catch (FormSourceException.ParseError e) {
        assertThat(e.getServerUrl(), is("http://blah.com"));
    }
}
Also used : FormSourceException(org.odk.collect.forms.FormSourceException) ByteArrayInputStream(java.io.ByteArrayInputStream) HashMap(java.util.HashMap) OpenRosaFormSource(org.odk.collect.android.openrosa.OpenRosaFormSource) HttpGetResult(org.odk.collect.android.openrosa.HttpGetResult) Test(org.junit.Test)

Example 8 with HttpGetResult

use of org.odk.collect.android.openrosa.HttpGetResult in project collect by opendatakit.

the class OpenRosaFormSourceTest method fetchManifest_whenThereIsAServerError_throwsServerError.

@Test
public void fetchManifest_whenThereIsAServerError_throwsServerError() throws Exception {
    OpenRosaFormSource formListApi = new OpenRosaFormSource("http://blah.com", httpInterface, webCredentialsUtils, responseParser);
    try {
        when(httpInterface.executeGetRequest(any(), any(), any())).thenReturn(new HttpGetResult(null, new HashMap<>(), "hash", 503));
        formListApi.fetchManifest("http://blah.com/manifest");
        fail("No exception thrown!");
    } catch (FormSourceException.ServerError e) {
        assertThat(e.getStatusCode(), is(503));
        assertThat(e.getServerUrl(), is("http://blah.com"));
    }
}
Also used : FormSourceException(org.odk.collect.forms.FormSourceException) HashMap(java.util.HashMap) OpenRosaFormSource(org.odk.collect.android.openrosa.OpenRosaFormSource) HttpGetResult(org.odk.collect.android.openrosa.HttpGetResult) Test(org.junit.Test)

Example 9 with HttpGetResult

use of org.odk.collect.android.openrosa.HttpGetResult in project collect by opendatakit.

the class OpenRosaFormSourceTest method fetchForm_whenThereIsAServerError_throwsServerError.

@Test
public void fetchForm_whenThereIsAServerError_throwsServerError() throws Exception {
    OpenRosaFormSource formListApi = new OpenRosaFormSource("http://blah.com", httpInterface, webCredentialsUtils, responseParser);
    try {
        when(httpInterface.executeGetRequest(any(), any(), any())).thenReturn(new HttpGetResult(null, new HashMap<>(), "hash", 500));
        formListApi.fetchForm("http://blah.com/form");
        fail("No exception thrown!");
    } catch (FormSourceException.ServerError e) {
        assertThat(e.getStatusCode(), is(500));
        assertThat(e.getServerUrl(), is("http://blah.com"));
    }
}
Also used : FormSourceException(org.odk.collect.forms.FormSourceException) HashMap(java.util.HashMap) OpenRosaFormSource(org.odk.collect.android.openrosa.OpenRosaFormSource) HttpGetResult(org.odk.collect.android.openrosa.HttpGetResult) Test(org.junit.Test)

Example 10 with HttpGetResult

use of org.odk.collect.android.openrosa.HttpGetResult in project collect by opendatakit.

the class OpenRosaFormSourceTest method fetchFormList_whenOpenRosaResponse_whenParserFails_throwsParseError.

@Test
public void fetchFormList_whenOpenRosaResponse_whenParserFails_throwsParseError() throws Exception {
    OpenRosaFormSource formListApi = new OpenRosaFormSource("http://blah.com", httpInterface, webCredentialsUtils, responseParser);
    try {
        when(httpInterface.executeGetRequest(any(), any(), any())).thenReturn(new HttpGetResult(new ByteArrayInputStream("<xml></xml>".getBytes()), new HashMap<String, String>() {

            {
                put(OpenRosaConstants.VERSION_HEADER, "1.0");
            }
        }, "hash", 200));
        when(responseParser.parseFormList(any())).thenReturn(null);
        formListApi.fetchFormList();
        fail("No exception thrown!");
    } catch (FormSourceException.ParseError e) {
        assertThat(e.getServerUrl(), is("http://blah.com"));
    }
}
Also used : FormSourceException(org.odk.collect.forms.FormSourceException) ByteArrayInputStream(java.io.ByteArrayInputStream) HashMap(java.util.HashMap) OpenRosaFormSource(org.odk.collect.android.openrosa.OpenRosaFormSource) HttpGetResult(org.odk.collect.android.openrosa.HttpGetResult) Test(org.junit.Test)

Aggregations

HashMap (java.util.HashMap)11 HttpGetResult (org.odk.collect.android.openrosa.HttpGetResult)11 Test (org.junit.Test)10 OpenRosaFormSource (org.odk.collect.android.openrosa.OpenRosaFormSource)10 FormSourceException (org.odk.collect.forms.FormSourceException)9 ByteArrayInputStream (java.io.ByteArrayInputStream)6 NonNull (androidx.annotation.NonNull)1 InputStream (java.io.InputStream)1 URI (java.net.URI)1 Date (java.util.Date)1 Headers (okhttp3.Headers)1 MediaType (okhttp3.MediaType)1 Request (okhttp3.Request)1 Response (okhttp3.Response)1 ResponseBody (okhttp3.ResponseBody)1 CaseInsensitiveEmptyHeaders (org.odk.collect.android.openrosa.CaseInsensitiveEmptyHeaders)1 CaseInsensitiveHeaders (org.odk.collect.android.openrosa.CaseInsensitiveHeaders)1 OpenRosaServerClient (org.odk.collect.android.openrosa.OpenRosaServerClient)1