Search in sources :

Example 1 with Pager

use of com.recurly.v3.Pager in project mattermost4j by maruTA-bis5.

the class TeamsApiTest method getTeams.

@Test
void getTeams() {
    Team team = th.loginSystemAdmin().createTeam();
    Pager pager = Pager.of(0, 200);
    ApiResponse<TeamList> response = assertNoError(client.getAllTeams(pager, null));
    List<Team> teams = response.readEntity();
    if (teams.size() == 200) {
        while (true) {
            pager = pager.nextPage();
            response = assertNoError(client.getAllTeams(pager, null));
            List<Team> additionalTeams = response.readEntity();
            if (additionalTeams.isEmpty()) {
                break;
            }
            teams.addAll(additionalTeams);
        }
    }
    assertThat(teams.stream().map(Team::getId).collect(Collectors.toSet()), hasItem(team.getId()));
}
Also used : Pager(net.bis5.mattermost.client4.Pager) TeamList(net.bis5.mattermost.model.TeamList) Team(net.bis5.mattermost.model.Team) MattermostClientTest(net.bis5.mattermost.client4.MattermostClientTest) Test(org.junit.jupiter.api.Test)

Example 2 with Pager

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

the class BaseClientTest method testMakeRequestWithQueryParams.

@Test
public void testMakeRequestWithQueryParams() throws IOException {
    DateTime dateTime = new DateTime();
    final Call mCall = mock(Call.class);
    Answer answer = (i) -> {
        Request request = i.getArgument(0);
        HttpUrl url = request.url();
        assertEquals("Aaron", url.queryParameter("my_string"));
        assertEquals(dateTime.toString(), url.queryParameter("my_date_time"));
        assertEquals("1", url.queryParameter("my_integer"));
        assertEquals("2.3", url.queryParameter("my_float"));
        assertEquals("4.5", url.queryParameter("my_double"));
        assertEquals("6", url.queryParameter("my_long"));
        assertEquals("twenty-three", url.queryParameter("my_enum"));
        assertEquals(null, url.queryParameter("my_random"));
        assertEquals("[]", url.queryParameter("unsupported"));
        return mCall;
    };
    when(mCall.execute()).thenReturn(MockClient.buildResponse(200, "OK", getResponseListJson()));
    OkHttpClient mockOkHttpClient = MockClient.getMockOkHttpClient(answer);
    final MockClient client = new MockClient("apiKey", mockOkHttpClient);
    final MockQueryParams qp = new MockQueryParams();
    qp.setMyString("Aaron");
    qp.setMyDateTime(dateTime);
    qp.setMyInteger(1);
    qp.setMyFloat(2.3f);
    qp.setMyDouble(4.5);
    qp.setMyLong(6L);
    qp.setMyEnum(FixtureConstants.ConstantType.TWENTY_THREE);
    qp.setMyRandom(null);
    qp.setUnsupported(new ArrayList<>());
    final Pager<MyResource> pager = client.listResources(qp);
    pager.getNextPage();
}
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) Request(okhttp3.Request) MyRequest(com.recurly.v3.fixtures.MyRequest) MockQueryParams(com.recurly.v3.fixtures.MockQueryParams) DateTime(org.joda.time.DateTime) HttpUrl(okhttp3.HttpUrl) MockClient(com.recurly.v3.fixtures.MockClient) MyResource(com.recurly.v3.fixtures.MyResource) Test(org.junit.jupiter.api.Test)

Example 3 with Pager

use of com.recurly.v3.Pager 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 4 with Pager

use of com.recurly.v3.Pager 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)

Example 5 with Pager

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

the class PagerTest method testForLoop.

@Test
public void testForLoop() 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);
    int count = 0;
    for (MyResource res : pager) {
        if (count < 3) {
            assertEquals("Resource Page 1", res.getMyString());
        } else {
            assertEquals("Resource Page 2", res.getMyString());
        }
        count++;
    }
    assertEquals(5, 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) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) 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)

Aggregations

Test (org.junit.jupiter.api.Test)8 MockClient (com.recurly.v3.fixtures.MockClient)7 MyResource (com.recurly.v3.fixtures.MyResource)7 IOException (java.io.IOException)7 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)7 Request (okhttp3.Request)7 Answer (org.mockito.stubbing.Answer)7 NoSuchElementException (java.util.NoSuchElementException)6 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)6 okhttp3 (okhttp3)6 Assertions (org.junit.jupiter.api.Assertions)6 Mockito (org.mockito.Mockito)6 HashMap (java.util.HashMap)2 MediaType (okhttp3.MediaType)2 ApiException (com.recurly.v3.ApiException)1 Pager (com.recurly.v3.Pager)1 QueryParams (com.recurly.v3.QueryParams)1 ExceptionFactory (com.recurly.v3.exception.ExceptionFactory)1 InternalServerException (com.recurly.v3.exception.InternalServerException)1 InvalidApiKeyException (com.recurly.v3.exception.InvalidApiKeyException)1