From b9bb6ae8952b04a622cffe649f83d3e0bac2689f Mon Sep 17 00:00:00 2001 From: Eduardo San Segundo Date: Tue, 16 Jun 2026 16:29:20 +0200 Subject: [PATCH 1/3] Refactor e2e tests for list responses --- .../domains/conversation/ContactsSteps.java | 49 +++++------------- .../conversation/ConversationsSteps.java | 48 +++++------------ .../e2e/domains/conversation/EventsSteps.java | 24 +++------ .../domains/conversation/MessagesSteps.java | 51 +++++-------------- .../e2e/domains/numbers/v1/NumbersSteps.java | 6 +-- .../sdk/e2e/domains/sms/v1/BatchesSteps.java | 18 +++---- .../domains/sms/v1/DeliveryReportsSteps.java | 17 +++---- .../sdk/e2e/domains/sms/v1/GroupsSteps.java | 16 +++--- .../sdk/e2e/domains/sms/v1/InboundsSteps.java | 17 +++---- 9 files changed, 73 insertions(+), 173 deletions(-) diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ContactsSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ContactsSteps.java index 6827278d8..8bb48a5a2 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ContactsSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ContactsSteps.java @@ -30,16 +30,12 @@ public class ContactsSteps { ContactsService service; Contact createResponse; ContactsListResponse listPageResponse; - ContactsListResponse listAllResponse; - ContactsListResponse listPageIterateResponse; Contact getResponse; Contact updateResponse; Contact mergeResponse; boolean deletePassed; GetChannelProfileResponse channelProfileByContactIdResponse; IdentityConflictsListResponse listIdentityConflictsResponse; - IdentityConflictsListResponse listAllIdentityConflictsResponse; - IdentityConflictsListResponse listPageIterateIdentityConflictsResponse; @Given("^the Conversation service \"Contacts\" is available$") public void serviceAvailable() { @@ -78,7 +74,7 @@ public void listAll() { ContactsListQueryParameters request = ContactsListQueryParameters.builder().setPageSize(2).build(); - listAllResponse = service.list(request); + listPageResponse = service.list(request); } @When("^I iterate manually over the contacts pages$") @@ -86,7 +82,7 @@ public void listPageIterate() { ContactsListQueryParameters request = ContactsListQueryParameters.builder().setPageSize(2).build(); - listPageIterateResponse = service.list(request); + listPageResponse = service.list(request); } @When("^I send a request to retrieve a contact$") @@ -156,7 +152,7 @@ public void listIdentityConflictsAll() { IdentityConflictsListQueryParameters request = IdentityConflictsListQueryParameters.builder().setPageSize(2).build(); - listAllIdentityConflictsResponse = service.listIdentityConflicts(request); + listIdentityConflictsResponse = service.listIdentityConflicts(request); } @When("^I iterate manually over the identity conflicts pages$") @@ -164,7 +160,7 @@ public void listIdentityConflictsPageIterate() { IdentityConflictsListQueryParameters request = IdentityConflictsListQueryParameters.builder().setPageSize(2).build(); - listPageIterateIdentityConflictsResponse = service.listIdentityConflicts(request); + listIdentityConflictsResponse = service.listIdentityConflicts(request); } @Then("the contact is created") @@ -181,15 +177,7 @@ public void listExistingResult(int size) { @Then("the contacts list contains \"{int}\" contacts") public void listAllResult(int size) { - // FIXME: to be thread-safe compliant we need to check which variables are set - Iterator iterator = null; - if (null != listAllResponse) { - iterator = listAllResponse.iterator(); - } - - if (null != listPageIterateResponse) { - iterator = listPageIterateResponse.iterator(); - } + Iterator iterator = listPageResponse.iterator(); TestHelpers.checkIteratorItems(iterator, size); } @@ -197,15 +185,13 @@ public void listAllResult(int size) { public void listPageIterateResult(int size) { int pageCount = 0; - - ContactsListResponse listPageIterateResponseThreadSafety = listPageIterateResponse; + ContactsListResponse currentPage = listPageResponse; do { pageCount++; - if (!listPageIterateResponseThreadSafety.hasNextPage()) { + if (!currentPage.hasNextPage()) { break; } - listPageIterateResponseThreadSafety = listPageIterateResponseThreadSafety.nextPage(); - + currentPage = currentPage.nextPage(); } while (true); Assertions.assertEquals(pageCount, size); @@ -281,15 +267,8 @@ public void listIdentityConflictsResults(int count) { @Then("the identity conflicts list contains \"{int}\" identity conflicts") public void listIdentityConflictsAllResults(int count) { - // FIXME: to be thread-safe compliant we need to check which variables are set - Iterator iterator = null; - if (null != listAllIdentityConflictsResponse) { - iterator = listAllIdentityConflictsResponse.iterator(); - } - - if (null != listPageIterateIdentityConflictsResponse) { - iterator = listPageIterateIdentityConflictsResponse.iterator(); - } + + Iterator iterator = listIdentityConflictsResponse.iterator(); TestHelpers.checkIteratorItems(iterator, count); } @@ -297,15 +276,13 @@ public void listIdentityConflictsAllResults(int count) { public void listAllIdentityConflictsPageIterateResults(int count) { int pageCount = 0; - IdentityConflictsListResponse listPageIterateResponseThreadSafety = - listPageIterateIdentityConflictsResponse; + IdentityConflictsListResponse currentPage = listIdentityConflictsResponse; do { pageCount++; - if (!listPageIterateResponseThreadSafety.hasNextPage()) { + if (!currentPage.hasNextPage()) { break; } - listPageIterateResponseThreadSafety = listPageIterateResponseThreadSafety.nextPage(); - + currentPage = currentPage.nextPage(); } while (true); Assertions.assertEquals(pageCount, count); diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ConversationsSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ConversationsSteps.java index 6c0db3b92..971a8864d 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ConversationsSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ConversationsSteps.java @@ -38,11 +38,7 @@ public class ConversationsSteps { ConversationsService service; Conversation createResponse; ConversationsListResponse listPageResponse; - ConversationsListResponse listAllResponse; - ConversationsListResponse listPageIterateResponse; RecentConversationsListResponse listRecentPageResponse; - RecentConversationsListResponse listRecentAllResponse; - RecentConversationsListResponse listRecentPageIterateResponse; Conversation getResponse; Conversation updateResponse; boolean deletePassed; @@ -87,7 +83,7 @@ public void listAll() { ConversationsListQueryParameters request = ConversationsListQueryParameters.builder().setAppId(AppsSteps.APP_ID).build(); - listAllResponse = service.list(request); + listPageResponse = service.list(request); } @When("^I iterate manually over the conversations pages$") @@ -95,7 +91,7 @@ public void listPageIterate() { ConversationsListQueryParameters request = ConversationsListQueryParameters.builder().setAppId(AppsSteps.APP_ID).build(); - listPageIterateResponse = service.list(request); + listPageResponse = service.list(request); } @When("^I send a request to list the recent conversations$") @@ -111,7 +107,7 @@ public void listRecentAll() { RecentConversationsListQueryParameters request = RecentConversationsListQueryParameters.builder().setAppId(AppsSteps.APP_ID).build(); - listRecentAllResponse = service.listRecent(request); + listRecentPageResponse = service.listRecent(request); } @When("^I iterate manually over the recent conversations pages$") @@ -119,7 +115,7 @@ public void listRecentPageIterate() { RecentConversationsListQueryParameters request = RecentConversationsListQueryParameters.builder().setAppId(AppsSteps.APP_ID).build(); - listRecentPageIterateResponse = service.listRecent(request); + listRecentPageResponse = service.listRecent(request); } @When("^I send a request to retrieve a conversation$") @@ -205,15 +201,7 @@ public void listPageResult(int size) { @Then("the conversations list contains \"{int}\" conversations") public void listAllResult(int size) { - // FIXME: to be thread-safe compliant we need to check which variables are set - Iterator iterator = null; - if (null != listAllResponse) { - iterator = listAllResponse.iterator(); - } - - if (null != listPageIterateResponse) { - iterator = listPageIterateResponse.iterator(); - } + Iterator iterator = listPageResponse.iterator(); TestHelpers.checkIteratorItems(iterator, size); } @@ -221,15 +209,13 @@ public void listAllResult(int size) { public void listPageIterateResult(int size) { int pageCount = 0; - - ConversationsListResponse listPageIterateResponseThreadSafety = listPageIterateResponse; + ConversationsListResponse currentPage = listPageResponse; do { pageCount++; - if (!listPageIterateResponseThreadSafety.hasNextPage()) { + if (!currentPage.hasNextPage()) { break; } - listPageIterateResponseThreadSafety = listPageIterateResponseThreadSafety.nextPage(); - + currentPage = currentPage.nextPage(); } while (true); Assertions.assertEquals(pageCount, size); @@ -244,14 +230,7 @@ public void listRecentPageResult(int size) { @Then("the recent conversations list contains \"{int}\" recent conversations") public void listRecentAllResult(int size) { - Iterator iterator = null; - if (null != listRecentAllResponse) { - iterator = listRecentAllResponse.iterator(); - } - - if (null != listRecentPageIterateResponse) { - iterator = listRecentPageIterateResponse.iterator(); - } + Iterator iterator = listRecentPageResponse.iterator(); TestHelpers.checkIteratorItems(iterator, size); } @@ -259,16 +238,13 @@ public void listRecentAllResult(int size) { public void listRecentPageIterateResult(int size) { int pageCount = 0; - - RecentConversationsListResponse listPageIterateResponseThreadSafety = - listRecentPageIterateResponse; + RecentConversationsListResponse currentPage = listRecentPageResponse; do { pageCount++; - if (!listPageIterateResponseThreadSafety.hasNextPage()) { + if (!currentPage.hasNextPage()) { break; } - listPageIterateResponseThreadSafety = listPageIterateResponseThreadSafety.nextPage(); - + currentPage = currentPage.nextPage(); } while (true); Assertions.assertEquals(pageCount, size); diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/EventsSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/EventsSteps.java index 482ae8c09..9cc12aa0e 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/EventsSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/EventsSteps.java @@ -23,8 +23,6 @@ public class EventsSteps { EventsService service; SendEventResponse sendResponse; EventsListResponse listPageResponse; - EventsListResponse listAllResponse; - EventsListResponse listPageIterateResponse; ConversationEvent getResponse; boolean deletePassed; @@ -57,14 +55,14 @@ public void listPage() { public void listAll() { EventsListQueryParameters request = EventsListQueryParameters.builder().setPageSize(2).build(); - listAllResponse = service.list(request); + listPageResponse = service.list(request); } @When("^I iterate manually over the conversation events pages$") public void listPageIterate() { EventsListQueryParameters request = EventsListQueryParameters.builder().setPageSize(2).build(); - listPageIterateResponse = service.list(request); + listPageResponse = service.list(request); } @When("^I send a request to retrieve a conversation event$") @@ -94,15 +92,7 @@ public void listPageResult(int size) { @Then("the conversation events list contains \"{int}\" conversation events") public void listAllResult(int size) { - // FIXME: to be thread-safe compliant we need to check which variables are set - Iterator iterator = null; - if (null != listAllResponse) { - iterator = listAllResponse.iterator(); - } - - if (null != listPageIterateResponse) { - iterator = listPageIterateResponse.iterator(); - } + Iterator iterator = listPageResponse.iterator(); TestHelpers.checkIteratorItems(iterator, size); } @@ -110,15 +100,13 @@ public void listAllResult(int size) { public void listPageIterateResult(int size) { int pageCount = 0; - - EventsListResponse listPageIterateResponseThreadSafety = listPageIterateResponse; + EventsListResponse currentPage = listPageResponse; do { pageCount++; - if (!listPageIterateResponseThreadSafety.hasNextPage()) { + if (!currentPage.hasNextPage()) { break; } - listPageIterateResponseThreadSafety = listPageIterateResponseThreadSafety.nextPage(); - + currentPage = currentPage.nextPage(); } while (true); Assertions.assertEquals(pageCount, size); diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/MessagesSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/MessagesSteps.java index d5b0bea6e..2fede9688 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/MessagesSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/MessagesSteps.java @@ -29,13 +29,9 @@ public class MessagesSteps { MessagesService service; SendMessageResponse sendResponse; MessagesListResponse listPageResponse; - MessagesListResponse listAllResponse; - MessagesListResponse listPageIterateResponse; ConversationMessage getResponse; ConversationMessage updateResponse; MessagesListResponse listLastMessagesByChannelIdentityResponse; - MessagesListResponse listAllLastMessagesByChannelIdentityResponse; - MessagesListResponse listPageIteratorLastMessagesByChannelIdentityResponse; boolean deletePassed; @@ -73,7 +69,7 @@ public void listAll() { MessagesListQueryParameters request = MessagesListQueryParameters.builder().setPageSize(2).build(); - listAllResponse = service.list(request); + listPageResponse = service.list(request); } @When("^I iterate manually over the messages pages$") @@ -81,7 +77,7 @@ public void listPageIterate() { MessagesListQueryParameters request = MessagesListQueryParameters.builder().setPageSize(2).build(); - listPageIterateResponse = service.list(request); + listPageResponse = service.list(request); } @When("^I send a request to retrieve a message$") @@ -126,8 +122,7 @@ public void listAllLastMessagesByChannelIdentity() { .setMessagesSource(MessageSource.CONVERSATION_SOURCE) .setPageSize(2) .build(); - listAllLastMessagesByChannelIdentityResponse = - service.listLastMessagesByChannelIdentity(request); + listLastMessagesByChannelIdentityResponse = service.listLastMessagesByChannelIdentity(request); } @When("^I iterate manually over the last messages sent to specified channel identities pages$") @@ -139,8 +134,7 @@ public void listLastMessagesByChannelIdentityPageIterator() { .setMessagesSource(MessageSource.CONVERSATION_SOURCE) .setPageSize(2) .build(); - listPageIteratorLastMessagesByChannelIdentityResponse = - service.listLastMessagesByChannelIdentity(request); + listLastMessagesByChannelIdentityResponse = service.listLastMessagesByChannelIdentity(request); } @Then("the response contains the id of the message") @@ -160,15 +154,7 @@ public void listPageResult(int size) { @Then("the messages list contains \"{int}\" messages") public void listAllResult(int size) { - // FIXME: to be thread-safe compliant we need to check which variables are set - Iterator iterator = null; - if (null != listAllResponse) { - iterator = listAllResponse.iterator(); - } - - if (null != listPageIterateResponse) { - iterator = listPageIterateResponse.iterator(); - } + Iterator iterator = listPageResponse.iterator(); TestHelpers.checkIteratorItems(iterator, size); } @@ -176,15 +162,13 @@ public void listAllResult(int size) { public void listPageIterateResult(int size) { int pageCount = 0; - - MessagesListResponse listPageIterateResponseThreadSafety = listPageIterateResponse; + MessagesListResponse currentPage = listPageResponse; do { pageCount++; - if (!listPageIterateResponseThreadSafety.hasNextPage()) { + if (!currentPage.hasNextPage()) { break; } - listPageIterateResponseThreadSafety = listPageIterateResponseThreadSafety.nextPage(); - + currentPage = currentPage.nextPage(); } while (true); Assertions.assertEquals(pageCount, size); @@ -215,16 +199,8 @@ public void listLastMessagesByChannelIdentity(int size) { @Then("the response list contains \"{int}\" last messages sent to specified channel identities") public void listAllLastMessagesByChannelIdentity(int size) { - Iterator iterator = null; - - if (null != listAllLastMessagesByChannelIdentityResponse) { - iterator = listAllLastMessagesByChannelIdentityResponse.iterator(); - } - - if (null != listPageIteratorLastMessagesByChannelIdentityResponse) { - iterator = listPageIteratorLastMessagesByChannelIdentityResponse.iterator(); - } + Iterator iterator = listLastMessagesByChannelIdentityResponse.iterator(); TestHelpers.checkIteratorItems(iterator, size); } @@ -234,16 +210,13 @@ public void listAllLastMessagesByChannelIdentity(int size) { public void listAllLastMessagesByChannelIdentityPageIterator(int size) { int pageCount = 0; - - MessagesListResponse listPageIterateResponseThreadSafety = - listPageIteratorLastMessagesByChannelIdentityResponse; + MessagesListResponse currentPage = listLastMessagesByChannelIdentityResponse; do { pageCount++; - if (!listPageIterateResponseThreadSafety.hasNextPage()) { + if (!currentPage.hasNextPage()) { break; } - listPageIterateResponseThreadSafety = listPageIterateResponseThreadSafety.nextPage(); - + currentPage = currentPage.nextPage(); } while (true); Assertions.assertEquals(pageCount, size); diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersSteps.java index 656f58a09..83f7bf70f 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersSteps.java @@ -46,8 +46,6 @@ public class NumbersSteps { ActiveNumber rentResponse; ActiveNumbersListResponse activeNumberListResponse; - ActiveNumbersListResponse activeNumberListAllResponse; - ActiveNumber updateResponse; ActiveNumber getResponse; ApiException getResponseException; @@ -156,7 +154,7 @@ public void listAll() { .setRegionCode("US") .setType(NumberType.LOCAL) .build(); - activeNumberListAllResponse = service.list(request); + activeNumberListResponse = service.list(request); } @When("I send a request to update the phone number {string}") @@ -336,7 +334,7 @@ public void listResult(int expected) { @Then("the phone numbers list contains \"{int}\" phone numbers") public void listAllResult(int expected) { - Assertions.assertEquals(expected, activeNumberListAllResponse.stream().count()); + Assertions.assertEquals(expected, activeNumberListResponse.stream().count()); } @Then("the response contains a phone number with updated parameters") diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/BatchesSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/BatchesSteps.java index c7324263e..f728614c8 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/BatchesSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/BatchesSteps.java @@ -36,8 +36,6 @@ public class BatchesSteps { BatchResponse sendTextWithParametersResponse; DryRunResponse dryRunResponse; ListBatchesResponse listOnePageResponse; - ListBatchesResponse listAllResponse; - ListBatchesResponse listAllByPageResponse; BatchResponse getBatchResponse; BatchResponse updateResponse; BatchResponse replaceResponse; @@ -144,7 +142,7 @@ public void listAll() { ListBatchesQueryParameters request = ListBatchesQueryParameters.builder().setPageSize(2).build(); - listAllResponse = service.list(request); + listOnePageResponse = service.list(request); } @When("^I iterate manually over the SMS batches pages$") @@ -152,7 +150,7 @@ public void listAllByPage() { ListBatchesQueryParameters request = ListBatchesQueryParameters.builder().setPageSize(2).build(); - listAllByPageResponse = service.list(request); + listOnePageResponse = service.list(request); } @When("^I send a request to retrieve an SMS batch$") @@ -304,11 +302,8 @@ public void onePageResult(int expected) { @Then("the SMS batches list contains \"{int}\" SMS batches") public void listAllResult(int expected) { - ListBatchesResponse response = - null != listAllResponse ? listAllResponse : listAllByPageResponse; - AtomicInteger count = new AtomicInteger(); - response.iterator().forEachRemaining(_unused -> count.getAndIncrement()); + listOnePageResponse.iterator().forEachRemaining(_unused -> count.getAndIncrement()); Assertions.assertEquals(count.get(), expected); } @@ -316,10 +311,11 @@ public void listAllResult(int expected) { @Then("the SMS batches iteration result contains the data from \"{int}\" pages") public void listAllByPageResult(int expected) { - int count = listAllByPageResponse.getContent().isEmpty() ? 0 : 1; - while (listAllByPageResponse.hasNextPage()) { + int count = listOnePageResponse.getContent().isEmpty() ? 0 : 1; + ListBatchesResponse currentPage = listOnePageResponse; + while (currentPage.hasNextPage()) { count++; - listAllByPageResponse = listAllByPageResponse.nextPage(); + currentPage = currentPage.nextPage(); } Assertions.assertEquals(count, expected); } diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/DeliveryReportsSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/DeliveryReportsSteps.java index 9c53251cf..f9de95f39 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/DeliveryReportsSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/DeliveryReportsSteps.java @@ -32,8 +32,6 @@ public class DeliveryReportsSteps { BatchDeliveryReport fullReport; RecipientDeliveryReport recipientReport; ListDeliveryReportsResponse listOnePageResponse; - ListDeliveryReportsResponse listAllResponse; - ListDeliveryReportsResponse listAllByPageResponse; @Given("^the SMS service \"Delivery Reports\" is available") public void serviceAvailable() { @@ -90,7 +88,7 @@ public void listAll() { ListDeliveryReportsQueryParameters request = ListDeliveryReportsQueryParameters.builder().setPageSize(2).build(); - listAllResponse = service.list(request); + listOnePageResponse = service.list(request); } @When("^I iterate manually over the SMS delivery reports pages$") @@ -98,7 +96,7 @@ public void listAllByPage() { ListDeliveryReportsQueryParameters request = ListDeliveryReportsQueryParameters.builder().setPageSize(2).build(); - listAllByPageResponse = service.list(request); + listOnePageResponse = service.list(request); } @Then("the response contains a summary SMS delivery report") @@ -173,11 +171,9 @@ public void onePageResult(int expected) { @Then("the SMS delivery reports list contains \"{int}\" SMS delivery reports") public void listAllResult(int expected) { - ListDeliveryReportsResponse response = - null != listAllResponse ? listAllResponse : listAllByPageResponse; AtomicInteger count = new AtomicInteger(); - response.iterator().forEachRemaining(_unused -> count.getAndIncrement()); + listOnePageResponse.iterator().forEachRemaining(_unused -> count.getAndIncrement()); Assertions.assertEquals(count.get(), expected); } @@ -185,10 +181,11 @@ public void listAllResult(int expected) { @Then("the SMS delivery reports iteration result contains the data from \"{int}\" pages") public void listAllByPageResult(int expected) { - int count = listAllByPageResponse.getContent().isEmpty() ? 0 : 1; - while (listAllByPageResponse.hasNextPage()) { + int count = listOnePageResponse.getContent().isEmpty() ? 0 : 1; + ListDeliveryReportsResponse currentPage = listOnePageResponse; + while (currentPage.hasNextPage()) { count++; - listAllByPageResponse = listAllByPageResponse.nextPage(); + currentPage = currentPage.nextPage(); } Assertions.assertEquals(count, expected); } diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/GroupsSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/GroupsSteps.java index 14bba1bf1..12f0433ee 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/GroupsSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/GroupsSteps.java @@ -26,8 +26,6 @@ public class GroupsSteps { Group createResponse; Group getResponse; ListGroupsResponse listOnePageResponse; - ListGroupsResponse listAllResponse; - ListGroupsResponse listAllByPageResponse; Group updateResponse; Group updateRemoveNameResponse; Group replaceResponse; @@ -76,14 +74,14 @@ public void listOnePage() { public void listAll() { ListGroupsQueryParameters request = ListGroupsQueryParameters.builder().setPageSize(2).build(); - listAllResponse = service.list(request); + listOnePageResponse = service.list(request); } @When("^I iterate manually over the SMS groups pages$") public void listAllByPage() { ListGroupsQueryParameters request = ListGroupsQueryParameters.builder().setPageSize(2).build(); - listAllByPageResponse = service.list(request); + listOnePageResponse = service.list(request); } @When("^I send a request to update an SMS group$") @@ -157,10 +155,9 @@ public void onePageResult(int expected) { @Then("the SMS groups list contains \"{int}\" SMS groups") public void listAllResult(int expected) { - ListGroupsResponse response = null != listAllResponse ? listAllResponse : listAllByPageResponse; AtomicInteger count = new AtomicInteger(); - response.iterator().forEachRemaining(_unused -> count.getAndIncrement()); + listOnePageResponse.iterator().forEachRemaining(_unused -> count.getAndIncrement()); Assertions.assertEquals(count.get(), expected); } @@ -168,10 +165,11 @@ public void listAllResult(int expected) { @Then("the SMS groups iteration result contains the data from \"{int}\" pages") public void listAllByPageResult(int expected) { - int count = listAllByPageResponse.getContent().isEmpty() ? 0 : 1; - while (listAllByPageResponse.hasNextPage()) { + int count = listOnePageResponse.getContent().isEmpty() ? 0 : 1; + ListGroupsResponse currentPage = listOnePageResponse; + while (currentPage.hasNextPage()) { count++; - listAllByPageResponse = listAllByPageResponse.nextPage(); + currentPage = currentPage.nextPage(); } Assertions.assertEquals(count, expected); } diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/InboundsSteps.java b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/InboundsSteps.java index 16f310e86..e36031fa8 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/InboundsSteps.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/InboundsSteps.java @@ -20,8 +20,6 @@ public class InboundsSteps { InboundsService service; InboundMessage getResponse; ListInboundsResponse listOnePageResponse; - ListInboundsResponse listAllResponse; - ListInboundsResponse listAllByPageResponse; @Given("^the SMS service \"Inbounds\" is available") public void serviceAvailable() { @@ -62,7 +60,7 @@ public void listAll() { .setPageSize(2) .build(); - listAllResponse = service.list(request); + listOnePageResponse = service.list(request); } @When("^I iterate manually over the inbound messages pages$") @@ -73,7 +71,7 @@ public void listAllByPage() { .setPageSize(2) .build(); - listAllByPageResponse = service.list(request); + listOnePageResponse = service.list(request); } @Then("the response contains the inbound message details") @@ -99,11 +97,9 @@ public void onePageResult(int expected) { @Then("the inbound messages list contains \"{int}\" inbound messages") public void listAllResult(int expected) { - ListInboundsResponse response = - null != listAllResponse ? listAllResponse : listAllByPageResponse; AtomicInteger count = new AtomicInteger(); - response.iterator().forEachRemaining(_unused -> count.getAndIncrement()); + listOnePageResponse.iterator().forEachRemaining(_unused -> count.getAndIncrement()); Assertions.assertEquals(count.get(), expected); } @@ -111,10 +107,11 @@ public void listAllResult(int expected) { @Then("the inbound messages iteration result contains the data from \"{int}\" pages") public void listAllByPageResult(int expected) { - int count = listAllByPageResponse.getContent().isEmpty() ? 0 : 1; - while (listAllByPageResponse.hasNextPage()) { + int count = listOnePageResponse.getContent().isEmpty() ? 0 : 1; + ListInboundsResponse currentPage = listOnePageResponse; + while (currentPage.hasNextPage()) { count++; - listAllByPageResponse = listAllByPageResponse.nextPage(); + currentPage = currentPage.nextPage(); } Assertions.assertEquals(count, expected); } From 45e3ed939d306f03527e56df024a40f28f32be6d Mon Sep 17 00:00:00 2001 From: Eduardo San Segundo Date: Wed, 17 Jun 2026 12:01:21 +0200 Subject: [PATCH 2/3] Refactor e2e tests for parallel execution with JUnit 5 Cucumber --- .../com/sinch/sdk/e2e/domains/conversation/ConversationIT.java | 2 ++ .../sinch/sdk/e2e/domains/numberlookup/v2/NumberLookupIT.java | 2 ++ .../java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersIT.java | 2 ++ .../src/test/java/com/sinch/sdk/e2e/domains/sms/v1/SmsIT.java | 2 ++ .../sinch/sdk/e2e/domains/verification/v1/VerificationIT.java | 2 ++ .../test/java/com/sinch/sdk/e2e/domains/voice/v1/VoiceIT.java | 2 ++ 6 files changed, 12 insertions(+) diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ConversationIT.java b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ConversationIT.java index f865e2159..e5e633e6c 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ConversationIT.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/conversation/ConversationIT.java @@ -1,6 +1,7 @@ package com.sinch.sdk.e2e.domains.conversation; import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME; +import static io.cucumber.junit.platform.engine.Constants.PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME; import org.junit.platform.suite.api.ConfigurationParameter; import org.junit.platform.suite.api.IncludeEngines; @@ -13,4 +14,5 @@ @IncludeEngines("cucumber") @SelectClasspathResource("features/conversation") @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "com.sinch.sdk.e2e.domains.conversation") +@ConfigurationParameter(key = PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME, value = "true") public class ConversationIT {} diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/numberlookup/v2/NumberLookupIT.java b/client/src/test/java/com/sinch/sdk/e2e/domains/numberlookup/v2/NumberLookupIT.java index 668d5466a..89c7aaae4 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/numberlookup/v2/NumberLookupIT.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/numberlookup/v2/NumberLookupIT.java @@ -1,6 +1,7 @@ package com.sinch.sdk.e2e.domains.numberlookup.v2; import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME; +import static io.cucumber.junit.platform.engine.Constants.PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME; import org.junit.platform.suite.api.ConfigurationParameter; import org.junit.platform.suite.api.IncludeEngines; @@ -15,4 +16,5 @@ @ConfigurationParameter( key = GLUE_PROPERTY_NAME, value = "com.sinch.sdk.e2e.domains.numberlookup.v2") +@ConfigurationParameter(key = PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME, value = "true") public class NumberLookupIT {} diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersIT.java b/client/src/test/java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersIT.java index ea1a27336..3be0f0910 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersIT.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/numbers/v1/NumbersIT.java @@ -1,6 +1,7 @@ package com.sinch.sdk.e2e.domains.numbers.v1; import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME; +import static io.cucumber.junit.platform.engine.Constants.PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME; import org.junit.platform.suite.api.ConfigurationParameter; import org.junit.platform.suite.api.IncludeEngines; @@ -13,4 +14,5 @@ @IncludeEngines("cucumber") @SelectClasspathResource("features/numbers") @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "com.sinch.sdk.e2e.domains.numbers.v1") +@ConfigurationParameter(key = PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME, value = "true") public class NumbersIT {} diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/SmsIT.java b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/SmsIT.java index 42139b9be..3ab37bf7c 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/SmsIT.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/sms/v1/SmsIT.java @@ -1,6 +1,7 @@ package com.sinch.sdk.e2e.domains.sms.v1; import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME; +import static io.cucumber.junit.platform.engine.Constants.PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME; import org.junit.platform.suite.api.ConfigurationParameter; import org.junit.platform.suite.api.IncludeEngines; @@ -13,4 +14,5 @@ @IncludeEngines("cucumber") @SelectClasspathResource("features/sms") @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "com.sinch.sdk.e2e.domains.sms.v1") +@ConfigurationParameter(key = PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME, value = "true") public class SmsIT {} diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/VerificationIT.java b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/VerificationIT.java index 75b21605b..e0e45cb0b 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/VerificationIT.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/verification/v1/VerificationIT.java @@ -1,6 +1,7 @@ package com.sinch.sdk.e2e.domains.verification.v1; import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME; +import static io.cucumber.junit.platform.engine.Constants.PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME; import org.junit.platform.suite.api.ConfigurationParameter; import org.junit.platform.suite.api.IncludeEngines; @@ -15,4 +16,5 @@ @ConfigurationParameter( key = GLUE_PROPERTY_NAME, value = "com.sinch.sdk.e2e.domains.verification.v1") +@ConfigurationParameter(key = PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME, value = "true") public class VerificationIT {} diff --git a/client/src/test/java/com/sinch/sdk/e2e/domains/voice/v1/VoiceIT.java b/client/src/test/java/com/sinch/sdk/e2e/domains/voice/v1/VoiceIT.java index 421a7a053..3b04db4ef 100644 --- a/client/src/test/java/com/sinch/sdk/e2e/domains/voice/v1/VoiceIT.java +++ b/client/src/test/java/com/sinch/sdk/e2e/domains/voice/v1/VoiceIT.java @@ -1,6 +1,7 @@ package com.sinch.sdk.e2e.domains.voice.v1; import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME; +import static io.cucumber.junit.platform.engine.Constants.PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME; import org.junit.platform.suite.api.ConfigurationParameter; import org.junit.platform.suite.api.IncludeEngines; @@ -13,4 +14,5 @@ @IncludeEngines("cucumber") @SelectClasspathResource("features/voice") @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "com.sinch.sdk.e2e.domains.voice.v1") +@ConfigurationParameter(key = PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME, value = "true") public class VoiceIT {} From e449cb6f6ec6c90a7240d64577b33a7aae2e7ff4 Mon Sep 17 00:00:00 2001 From: Eduardo San Segundo Date: Wed, 17 Jun 2026 18:02:06 +0200 Subject: [PATCH 3/3] Removed dead code for parallelism into the pom.xml file --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index 021a0bf4d..0d3e83e8a 100644 --- a/pom.xml +++ b/pom.xml @@ -283,10 +283,6 @@ maven-failsafe-plugin ${maven.failsafe.plugin.version} - - all - true - @@ -314,7 +310,6 @@ ${maven-surefire-plugin.version} ${skipUTs} - all