Search in sources :

Example 16 with MockClient

use of com.recurly.v3.fixtures.MockClient in project recurly-client-java by recurly.

the class BaseClientTest method testInterpolatePathWithoutParams.

@Test
public void testInterpolatePathWithoutParams() {
    final MockClient client = new MockClient("apiKey");
    final String path = "/accounts";
    final String interpolatedPath = client.interpolatePath(path);
    assertEquals("/accounts", interpolatedPath);
}
Also used : MockClient(com.recurly.v3.fixtures.MockClient) Test(org.junit.jupiter.api.Test)

Example 17 with MockClient

use of com.recurly.v3.fixtures.MockClient in project recurly-client-java by recurly.

the class BaseClientTest method testInvalidApiKey.

@Test
public void testInvalidApiKey() throws IOException {
    final Call mCall = mock(Call.class);
    Answer answer = (i) -> {
        return mCall;
    };
    when(mCall.execute()).thenReturn(MockClient.buildResponse(404, "Not Found", getErrorJson("invalid_api_key")));
    OkHttpClient mockOkHttpClient = MockClient.getMockOkHttpClient(answer);
    final MockClient client = new MockClient("apiKey", mockOkHttpClient);
    // This test is important because it ensures that application/json response errors are based on the json
    // body's error type and not the status code based error
    assertThrows(InvalidApiKeyException.class, () -> {
        client.getResource("code-aaron");
    });
}
Also used : Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) NotFoundException(com.recurly.v3.exception.NotFoundException) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) FixtureConstants(com.recurly.v3.fixtures.FixtureConstants) HashMap(java.util.HashMap) Headers(okhttp3.Headers) MockQueryParams(com.recurly.v3.fixtures.MockQueryParams) ArrayList(java.util.ArrayList) Answer(org.mockito.stubbing.Answer) MockClient(com.recurly.v3.fixtures.MockClient) ApiException(com.recurly.v3.ApiException) Map(java.util.Map) Response(okhttp3.Response) Call(okhttp3.Call) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) MediaType(okhttp3.MediaType) Request(okhttp3.Request) TransactionException(com.recurly.v3.exception.TransactionException) InvalidApiKeyException(com.recurly.v3.exception.InvalidApiKeyException) MyResource(com.recurly.v3.fixtures.MyResource) DateTime(org.joda.time.DateTime) Assert.assertTrue(org.junit.Assert.assertTrue) IOException(java.io.IOException) Mockito.when(org.mockito.Mockito.when) Field(java.lang.reflect.Field) StandardCharsets(java.nio.charset.StandardCharsets) Test(org.junit.jupiter.api.Test) IOUtils(org.apache.commons.io.IOUtils) OkHttpClient(okhttp3.OkHttpClient) ValidationException(com.recurly.v3.exception.ValidationException) MyRequest(com.recurly.v3.fixtures.MyRequest) HttpUrl(okhttp3.HttpUrl) Assert(org.junit.Assert) InternalServerException(com.recurly.v3.exception.InternalServerException) Collections(java.util.Collections) ExceptionFactory(com.recurly.v3.exception.ExceptionFactory) InputStream(java.io.InputStream) Mockito.mock(org.mockito.Mockito.mock) Call(okhttp3.Call) Answer(org.mockito.stubbing.Answer) OkHttpClient(okhttp3.OkHttpClient) MockClient(com.recurly.v3.fixtures.MockClient) Test(org.junit.jupiter.api.Test)

Example 18 with MockClient

use of com.recurly.v3.fixtures.MockClient in project recurly-client-java by recurly.

the class BaseClientTest method testNonJsonError500.

@Test
public void testNonJsonError500() throws IOException {
    final Call mCall = mock(Call.class);
    Answer answer = (i) -> {
        return mCall;
    };
    Headers headers = new Headers.Builder().build();
    MediaType contentType = MediaType.get("text/html; charset=UTF-8");
    when(mCall.execute()).thenReturn(MockClient.buildResponse(500, "Internal Server Error", "<html>badness</html>", headers, contentType));
    OkHttpClient mockOkHttpClient = MockClient.getMockOkHttpClient(answer);
    final MockClient client = new MockClient("apiKey", mockOkHttpClient);
    assertThrows(InternalServerException.class, () -> {
        client.getResource("code-aaron");
    });
}
Also used : Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) NotFoundException(com.recurly.v3.exception.NotFoundException) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) FixtureConstants(com.recurly.v3.fixtures.FixtureConstants) HashMap(java.util.HashMap) Headers(okhttp3.Headers) MockQueryParams(com.recurly.v3.fixtures.MockQueryParams) ArrayList(java.util.ArrayList) Answer(org.mockito.stubbing.Answer) MockClient(com.recurly.v3.fixtures.MockClient) ApiException(com.recurly.v3.ApiException) Map(java.util.Map) Response(okhttp3.Response) Call(okhttp3.Call) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) MediaType(okhttp3.MediaType) Request(okhttp3.Request) TransactionException(com.recurly.v3.exception.TransactionException) InvalidApiKeyException(com.recurly.v3.exception.InvalidApiKeyException) MyResource(com.recurly.v3.fixtures.MyResource) DateTime(org.joda.time.DateTime) Assert.assertTrue(org.junit.Assert.assertTrue) IOException(java.io.IOException) Mockito.when(org.mockito.Mockito.when) Field(java.lang.reflect.Field) StandardCharsets(java.nio.charset.StandardCharsets) Test(org.junit.jupiter.api.Test) IOUtils(org.apache.commons.io.IOUtils) OkHttpClient(okhttp3.OkHttpClient) ValidationException(com.recurly.v3.exception.ValidationException) MyRequest(com.recurly.v3.fixtures.MyRequest) HttpUrl(okhttp3.HttpUrl) Assert(org.junit.Assert) InternalServerException(com.recurly.v3.exception.InternalServerException) Collections(java.util.Collections) ExceptionFactory(com.recurly.v3.exception.ExceptionFactory) InputStream(java.io.InputStream) Mockito.mock(org.mockito.Mockito.mock) Call(okhttp3.Call) Answer(org.mockito.stubbing.Answer) OkHttpClient(okhttp3.OkHttpClient) Headers(okhttp3.Headers) MediaType(okhttp3.MediaType) MockClient(com.recurly.v3.fixtures.MockClient) Test(org.junit.jupiter.api.Test)

Example 19 with MockClient

use of com.recurly.v3.fixtures.MockClient in project recurly-client-java by recurly.

the class PagerTest method testCount.

@Test
public void testCount() throws IOException {
    final Call mCall = mock(Call.class);
    Headers headers = new Headers.Builder().set("Recurly-Total-Records", "1337").build();
    Answer answer = (i) -> {
        Request request = i.getArgument(0);
        assertEquals("HEAD", request.method());
        return mCall;
    };
    when(mCall.execute()).thenReturn(MockClient.buildResponse(200, "OK", getResourceFirstItemJson(), headers));
    OkHttpClient mockOkHttpClient = MockClient.getMockOkHttpClient(answer);
    final MockClient client = new MockClient("apiKey", mockOkHttpClient);
    Pager<MyResource> pager = client.listResources(null);
    int count = pager.getCount();
    assertEquals(1337, count);
}
Also used : Test(org.junit.jupiter.api.Test) Mockito(org.mockito.Mockito) Answer(org.mockito.stubbing.Answer) MockClient(com.recurly.v3.fixtures.MockClient) Request(okhttp3.Request) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) okhttp3(okhttp3) Assertions(org.junit.jupiter.api.Assertions) MyResource(com.recurly.v3.fixtures.MyResource) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) IOException(java.io.IOException) NoSuchElementException(java.util.NoSuchElementException) Answer(org.mockito.stubbing.Answer) Request(okhttp3.Request) MockClient(com.recurly.v3.fixtures.MockClient) MyResource(com.recurly.v3.fixtures.MyResource) Test(org.junit.jupiter.api.Test)

Example 20 with MockClient

use of com.recurly.v3.fixtures.MockClient in project recurly-client-java by recurly.

the class PagerTest method testForEach.

@Test
public void testForEach() throws IOException {
    final Call mCall = mock(Call.class);
    AtomicBoolean firstCalled = new AtomicBoolean(false);
    Answer answer = (i) -> {
        Request request = i.getArgument(0);
        HttpUrl url = request.url();
        if (firstCalled.get()) {
            assertEquals("/next", url.url().getPath());
        }
        firstCalled.set(true);
        return mCall;
    };
    when(mCall.execute()).thenReturn(MockClient.buildResponse(200, "OK", getResourceFirstPageJson("/next"))).thenReturn(MockClient.buildResponse(200, "OK", getResourceSecondPageJson()));
    OkHttpClient mockOkHttpClient = MockClient.getMockOkHttpClient(answer);
    final MockClient client = new MockClient("apiKey", mockOkHttpClient);
    Pager<MyResource> pager = client.listResources(null);
    AtomicInteger count = new AtomicInteger(0);
    pager.forEach(resource -> {
        if (count.get() < 3) {
            assertEquals("Resource Page 1", resource.getMyString());
        } else {
            assertEquals("Resource Page 2", resource.getMyString());
        }
        count.incrementAndGet();
    });
}
Also used : Test(org.junit.jupiter.api.Test) Mockito(org.mockito.Mockito) Answer(org.mockito.stubbing.Answer) MockClient(com.recurly.v3.fixtures.MockClient) Request(okhttp3.Request) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) okhttp3(okhttp3) Assertions(org.junit.jupiter.api.Assertions) MyResource(com.recurly.v3.fixtures.MyResource) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) IOException(java.io.IOException) NoSuchElementException(java.util.NoSuchElementException) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Answer(org.mockito.stubbing.Answer) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Request(okhttp3.Request) MockClient(com.recurly.v3.fixtures.MockClient) MyResource(com.recurly.v3.fixtures.MyResource) Test(org.junit.jupiter.api.Test)

Aggregations

MockClient (com.recurly.v3.fixtures.MockClient)26 Test (org.junit.jupiter.api.Test)26 MyResource (com.recurly.v3.fixtures.MyResource)20 IOException (java.io.IOException)20 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)20 Request (okhttp3.Request)20 Answer (org.mockito.stubbing.Answer)20 HashMap (java.util.HashMap)18 ApiException (com.recurly.v3.ApiException)14 ExceptionFactory (com.recurly.v3.exception.ExceptionFactory)14 InternalServerException (com.recurly.v3.exception.InternalServerException)14 InvalidApiKeyException (com.recurly.v3.exception.InvalidApiKeyException)14 NotFoundException (com.recurly.v3.exception.NotFoundException)14 TransactionException (com.recurly.v3.exception.TransactionException)14 ValidationException (com.recurly.v3.exception.ValidationException)14 FixtureConstants (com.recurly.v3.fixtures.FixtureConstants)14 MockQueryParams (com.recurly.v3.fixtures.MockQueryParams)14 MyRequest (com.recurly.v3.fixtures.MyRequest)14 InputStream (java.io.InputStream)14 Field (java.lang.reflect.Field)14