From 61727b1dcb282669811e25f105998526e252646a Mon Sep 17 00:00:00 2001 From: arolfes Date: Thu, 26 Jan 2023 22:48:13 +0100 Subject: [PATCH] TSK-1982 refactore QueryClassificationWithPaginationAccTest to use Test-API --- ...cationQueryOffsetAndPaginationAccTest.java | 138 +++++++++++++++++ ...ryClassificationWithPaginationAccTest.java | 141 ------------------ 2 files changed, 138 insertions(+), 141 deletions(-) create mode 100644 lib/taskana-core-test/src/test/java/acceptance/classification/query/ClassificationQueryOffsetAndPaginationAccTest.java delete mode 100644 lib/taskana-core/src/test/java/acceptance/classification/query/QueryClassificationWithPaginationAccTest.java diff --git a/lib/taskana-core-test/src/test/java/acceptance/classification/query/ClassificationQueryOffsetAndPaginationAccTest.java b/lib/taskana-core-test/src/test/java/acceptance/classification/query/ClassificationQueryOffsetAndPaginationAccTest.java new file mode 100644 index 000000000..851846853 --- /dev/null +++ b/lib/taskana-core-test/src/test/java/acceptance/classification/query/ClassificationQueryOffsetAndPaginationAccTest.java @@ -0,0 +1,138 @@ +package acceptance.classification.query; + +import static org.assertj.core.api.Assertions.assertThat; +import static pro.taskana.testapi.DefaultTestEntities.defaultTestClassification; + +import java.util.List; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import pro.taskana.classification.api.ClassificationService; +import pro.taskana.classification.api.models.ClassificationSummary; +import pro.taskana.testapi.TaskanaInject; +import pro.taskana.testapi.TaskanaIntegrationTest; +import pro.taskana.testapi.security.WithAccessId; + +@TaskanaIntegrationTest +public class ClassificationQueryOffsetAndPaginationAccTest { + + @TaskanaInject ClassificationService classificationService; + + @WithAccessId(user = "businessadmin") + @BeforeAll + void createClassifications() throws Exception { + for (int i = 0; i <= 18; i++) { + defaultTestClassification().buildAndStoreAsSummary(classificationService); + } + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetFirstFiveClassifications_When_OffsetIsZeroAndLimitIsFive() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(0, 5); + assertThat(results).hasSize(5); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetLastFourClassifications_When_OffsetIsFifteenAndLimitIsFive() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(15, 5); + assertThat(results).hasSize(4); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetZeroClassifications_When_OffsetIsNegativeAndLimitIsNegative() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(-1, -1); + assertThat(results).hasSize(0); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetZeroClassifications_When_LimitIsNegative() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(0, -1); + assertThat(results).hasSize(0); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetZeroClassifications_When_OffsetAndLimitAreZero() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(0, 0); + assertThat(results).hasSize(0); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetOneClassifications_When_OffsetIsNegativeAndLimitIsPositive() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(-1, 1); + assertThat(results).hasSize(1); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetFirstFiveClassifications_When_UsingPaginationWithPageOneAndSizeFive() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").listPage(1, 5); + assertThat(results).hasSize(5); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetLastFourClassifications_When_UsingPaginationWithPageFourAndPageSizeFive() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").listPage(4, 5); + assertThat(results).hasSize(4); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetAllClassifications_When_UsingPaginationWithPageOneAndPageSizeTwenty() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").listPage(1, 20); + assertThat(results).hasSize(19); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetZeroClassifications_When_UsingPaginationWithSizeZero() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").listPage(1, 0); + assertThat(results).hasSize(0); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetZeroClassifications_When_UsingPaginationWithNegativeSize() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").listPage(1, -1); + assertThat(results).hasSize(0); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetOneClassification_When_UsingPaginationWithPageZeroButSizeOne() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").listPage(0, 1); + assertThat(results).hasSize(1); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetOneClassification_When_UsingPaginationWithNegativePageButSizeOne() { + List results = + classificationService.createClassificationQuery().domainIn("DOMAIN_A").listPage(-1, 1); + assertThat(results).hasSize(1); + } + + @WithAccessId(user = "businessadmin") + @Test + void should_GetNumberOfAllClassifications_When_CountMethodIsCalled() { + long count = classificationService.createClassificationQuery().domainIn("DOMAIN_A").count(); + assertThat(count).isEqualTo(19L); + } +} diff --git a/lib/taskana-core/src/test/java/acceptance/classification/query/QueryClassificationWithPaginationAccTest.java b/lib/taskana-core/src/test/java/acceptance/classification/query/QueryClassificationWithPaginationAccTest.java deleted file mode 100644 index 56986e76b..000000000 --- a/lib/taskana-core/src/test/java/acceptance/classification/query/QueryClassificationWithPaginationAccTest.java +++ /dev/null @@ -1,141 +0,0 @@ -package acceptance.classification.query; - -import static org.assertj.core.api.Assertions.assertThat; - -import acceptance.AbstractAccTest; -import java.util.List; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import pro.taskana.classification.api.ClassificationService; -import pro.taskana.classification.api.models.ClassificationSummary; -import pro.taskana.common.test.security.JaasExtension; - -/** Acceptance test for all "query classifications with pagination" scenarios. */ -@ExtendWith(JaasExtension.class) -class QueryClassificationWithPaginationAccTest extends AbstractAccTest { - - QueryClassificationWithPaginationAccTest() { - super(); - } - - @Test - void testGetFirstPageOfClassificationQueryWithOffset() { - ClassificationService classificationService = taskanaEngine.getClassificationService(); - List results = - classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(0, 5); - assertThat(results).hasSize(5); - } - - @Test - void testGetSecondPageOfClassificationQueryWithOffset() { - ClassificationService classificationService = taskanaEngine.getClassificationService(); - List results = - classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(5, 5); - assertThat(results).hasSize(5); - } - - @Test - void testListOffsetAndLimitOutOfBounds() { - ClassificationService classificationService = taskanaEngine.getClassificationService(); - - // both will be 0, working - List results = - classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(-1, -3); - assertThat(results).isEmpty(); - - // limit will be 0 - results = classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(1, -3); - assertThat(results).isEmpty(); - - // offset will be 0 - results = classificationService.createClassificationQuery().domainIn("DOMAIN_A").list(-1, 3); - assertThat(results).hasSize(3); - } - - @Test - void testPaginationWithPages() { - ClassificationService classificationService = taskanaEngine.getClassificationService(); - - // Getting full page - int pageNumber = 1; - int pageSize = 4; - List results = - classificationService - .createClassificationQuery() - .domainIn("DOMAIN_A") - .listPage(pageNumber, pageSize); - assertThat(results).hasSize(4); - - // Getting full page - pageNumber = 3; - pageSize = 4; - results = - classificationService - .createClassificationQuery() - .domainIn("DOMAIN_A") - .listPage(pageNumber, pageSize); - assertThat(results).hasSize(4); - - // Getting last results on 1 big page - pageNumber = 1; - pageSize = 100; - results = - classificationService - .createClassificationQuery() - .domainIn("DOMAIN_A") - .listPage(pageNumber, pageSize); - assertThat(results).hasSize(18); - - // Getting last results on multiple pages - pageNumber = 2; - pageSize = 10; - results = - classificationService - .createClassificationQuery() - .domainIn("DOMAIN_A") - .listPage(pageNumber, pageSize); - assertThat(results).hasSize(8); - } - - @Test - void testPaginationNullAndNegativeLimitsIgnoring() { - ClassificationService classificationService = taskanaEngine.getClassificationService(); - - // 0 limit/size = 0 results - int pageNumber = 1; - int pageSize = 0; - List results = - classificationService - .createClassificationQuery() - .domainIn("DOMAIN_A") - .listPage(pageNumber, pageSize); - assertThat(results).isEmpty(); - - // Negative will be 0 = all results - pageNumber = 1; - pageSize = -1; - results = - classificationService - .createClassificationQuery() - .domainIn("DOMAIN_A") - .listPage(pageNumber, pageSize); - assertThat(results).isEmpty(); - - // Negative page = first page - pageNumber = -1; - pageSize = 10; - results = - classificationService - .createClassificationQuery() - .domainIn("DOMAIN_A") - .listPage(pageNumber, pageSize); - assertThat(results).hasSize(10); - } - - @Test - void testCountOfClassificationsQuery() { - ClassificationService classificationService = taskanaEngine.getClassificationService(); - long count = classificationService.createClassificationQuery().domainIn("DOMAIN_A").count(); - assertThat(count).isEqualTo(18L); - } -}