From 55f5de661b036b1e1805a9056f535eaf6fb8f1ab Mon Sep 17 00:00:00 2001 From: CRoberto1926 <3205022+CRoberto1926@users.noreply.github.com> Date: Thu, 7 Nov 2024 17:08:06 +0100 Subject: [PATCH] Closes #162 - Fix some SonarCloud issues in Backend --- .../common/test/DockerContainerCreator.java | 76 +++-- .../common/test/security/JaasExtension.java | 26 +- .../io/kadai/common/api/CustomHoliday.java | 28 +- .../configuration/DbSchemaCreator.java | 5 +- .../internal/util/ComparableVersion.java | 70 ++--- .../WorkingTimeCalculatorImpl.java | 15 +- .../internal/util/CollectionUtilTest.java | 3 +- .../WorkingTimeCalculatorImplTest.java | 26 +- .../workingtime/WorkingTimeScheduleTest.java | 43 +-- .../impl/ClassificationHistoryQueryImpl.java | 41 +-- .../impl/TaskHistoryQueryImpl.java | 9 +- .../impl/WorkbasketHistoryQueryImpl.java | 8 +- ...tOnWorkbasketMarkedForDeletionAccTest.java | 2 +- .../ClassificationHistoryQueryImplTest.java | 24 +- .../impl/SimpleHistoryServiceImplTest.java | 8 +- .../impl/WorkbasketHistoryQueryImplTest.java | 32 +- .../TaskHistoryEventControllerIntTest.java | 8 +- .../io/kadai/KadaiCdiTestRestController.java | 2 +- .../java/acceptance/ArchitectureTest.java | 2 +- .../acceptance/KadaiConfigurationTest.java | 4 +- .../src/test/java/acceptance/PojoTest.java | 41 ++- .../ClassificationQueryFilteringAccTest.java | 11 +- ...cationQueryOffsetAndPaginationAccTest.java | 12 +- .../update/UpdateClassificationAccTest.java | 13 +- ...cationWithWorkingDayCalculatorAccTest.java | 16 +- .../jobs/AbstractKadaiJobAccTest.java | 8 +- .../jobs/HistoryCleanupJobAccTest.java | 10 +- .../jobs/JobSchedulerInitAccTest.java | 2 +- .../jobs/TaskCleanupJobAccTest.java | 3 +- .../task/claim/ClaimTaskAccTest.java | 12 +- .../task/complete/CompleteTaskAccTest.java | 6 +- .../task/create/CreateTaskAccTest.java | 16 +- .../task/create/CreateTaskWithSorAccTest.java | 5 +- .../task/delete/DeleteTaskAccTest.java | 2 +- .../acceptance/task/get/GetTaskAccTest.java | 31 +- .../task/query/TaskQueryImplAccTest.java | 39 ++- .../task/update/UpdateTaskAccTest.java | 23 +- .../delete/DeleteTaskCommentAccTest.java | 6 +- .../query/QueryTaskCommentAccTest.java | 2 +- .../taskrouting/TaskRoutingAccTest.java | 4 +- .../io/kadai/common/api/SharedConstants.java | 6 +- .../kadai/common/internal/JobServiceImpl.java | 3 +- .../history/internal/HistoryEventManager.java | 16 +- .../task/internal/AttachmentHandler.java | 8 +- .../task/internal/ServiceLevelHandler.java | 24 +- .../kadai/task/internal/TaskServiceImpl.java | 283 +++++++++--------- .../kadai/task/internal/models/TaskImpl.java | 20 +- .../task/internal/models/TaskSummaryImpl.java | 20 +- .../kadai/user/internal/UserServiceImpl.java | 13 +- .../internal/WorkbasketServiceImpl.java | 6 +- .../acceptance/jobs/JobRunnerAccTest.java | 39 --- ...ampsWithWorkingDaysCalculationAccTest.java | 3 +- .../java/acceptance/report/ReportTest.java | 41 ++- .../acceptance/task/CallbackStateAccTest.java | 5 +- .../task/claim/SelectAndClaimTaskAccTest.java | 7 +- .../task/query/QueryTasksAccTest.java | 41 +-- .../task/query/QueryTasksByRoleAccTest.java | 33 +- .../query/QueryTasksWithSortingAccTest.java | 32 +- ...mentWithWorkingDaysCalculationAccTest.java | 24 +- .../update/UpdateTaskAttachmentsAccTest.java | 21 +- .../get/GetDistributionTargetsAccTest.java | 4 +- .../query/QueryWorkbasketAccTest.java | 16 +- .../UpdateDistributionTargetsAccTest.java | 3 +- .../kadai/testapi/DockerContainerCreator.java | 63 ++-- .../KadaiInitializationExtension.java | 3 +- .../kadai/testapi/security/JaasExtension.java | 4 +- .../testapi/security/JaasExtensionTest.java | 19 +- ...rchRootsForUseDnForGroupsDisabledTest.java | 3 + .../ldap/LdapEmptySearchRootsTest.java | 3 + ...aiWildflyWithHistoryLoggerEnabledTest.java | 17 -- .../rest/ClassificationController.java | 68 +++-- .../rest/KadaiRestExceptionHandler.java | 8 +- .../ReportRepresentationModelAssembler.java | 3 +- .../kadai/task/rest/AttachmentController.java | 24 -- .../task/rest/TaskCommentController.java | 34 ++- .../io/kadai/task/rest/TaskController.java | 177 +++++------ ...ttachmentRepresentationModelAssembler.java | 4 - .../io/kadai/user/rest/UserController.java | 54 ++-- .../workbasket/rest/WorkbasketController.java | 121 ++++---- ...mmaryRepresentationModelAssemblerTest.java | 3 - .../rest/GeneralExceptionHandlingTest.java | 11 +- .../common/rest/QuerySortParameterTest.java | 21 +- .../rest/MonitorControllerIntTest.java | 7 +- ...eportRepresentationModelAssemblerTest.java | 6 +- .../task/rest/TaskControllerIntTest.java | 17 +- ...hmentRepresentationModelAssemblerTest.java | 3 - ...mmaryRepresentationModelAssemblerTest.java | 11 +- .../routing/IntegrationTestTaskRouter.java | 6 +- .../user/jobs/UserInfoRefreshJobIntTest.java | 8 +- .../rest/WorkbasketControllerIntTest.java | 3 +- ...sItemRepresentationModelAssemblerTest.java | 3 - ...mmaryRepresentationModelAssemblerTest.java | 3 - .../dmn/service/DmnConverterService.java | 4 +- .../routing/dmn/service/XlsxConverter.java | 2 - .../dmn/service/XlsxWorksheetConverter.java | 11 +- .../dmn/rest/DmnUploadControllerIntTest.java | 10 +- .../util/InputEntriesSanitizerAccTest.java | 6 +- .../routing/dmn/spi/TestDmnValidatorImpl.java | 6 +- 98 files changed, 946 insertions(+), 1162 deletions(-) delete mode 100644 rest/kadai-rest-spring/src/main/java/io/kadai/task/rest/AttachmentController.java diff --git a/common/kadai-common-test/src/main/java/io/kadai/common/test/DockerContainerCreator.java b/common/kadai-common-test/src/main/java/io/kadai/common/test/DockerContainerCreator.java index ab4b27b9d..720ba8017 100644 --- a/common/kadai-common-test/src/main/java/io/kadai/common/test/DockerContainerCreator.java +++ b/common/kadai-common-test/src/main/java/io/kadai/common/test/DockerContainerCreator.java @@ -38,39 +38,51 @@ private DockerContainerCreator() { } public static Optional> createDockerContainer(DB db) { - switch (db) { - case DB2: - return Optional.of( + return switch (db) { + case DB2 -> { + try (Db2Container db2Container = new Db2Container( - DockerImageName.parse("taskana/db2:11.5") - .asCompatibleSubstituteFor("ibmcom/db2")) - .waitingFor( - new LogMessageWaitStrategy() - .withRegEx(".*DB2START processing was successful.*") - .withStartupTimeout(Duration.of(60, SECONDS))) - .withUsername("db2inst1") - .withPassword("db2inst1-pwd") - .withDatabaseName("TSKDB")); - case POSTGRES: - return Optional.of( - new PostgreSQLContainer<>(DockerImageName.parse("postgres:14.7")) - .withUsername("postgres") - .withPassword("postgres") - .withDatabaseName("postgres") - .withCommand( - "/bin/sh", - "-c", - "localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8 " - + "&& export LANG=de_DE.UTF-8 " - + "&& /usr/local/bin/docker-entrypoint.sh postgres -c fsync=off") - .waitingFor( - new LogMessageWaitStrategy() - .withRegEx(".*Datenbanksystem ist bereit, um Verbindungen anzunehmen.*\\s") - .withTimes(2) - .withStartupTimeout(Duration.of(60, SECONDS)))); - default: - return Optional.empty(); - } + DockerImageName.parse("taskana/db2:11.5") + .asCompatibleSubstituteFor("ibmcom/db2"))) { + + yield Optional.of( + db2Container + .waitingFor( + new LogMessageWaitStrategy() + .withRegEx(".*DB2START processing was successful.*") + .withStartupTimeout(Duration.of(60, SECONDS))) + .withUsername("db2inst1") + .withPassword("db2inst1-pwd") + .withDatabaseName("TSKDB")); + } + } + case POSTGRES -> { + try (PostgreSQLContainer selfPostgreSQLContainer = + new PostgreSQLContainer<>(DockerImageName.parse("postgres:14.7"))) { + + yield Optional.of( + selfPostgreSQLContainer + .withUsername("postgres") + .withPassword("postgres") + .withDatabaseName("postgres") + .withCommand( + "/bin/sh", + "-c", + """ + localedef -i de_DE -c -f UTF-8 -A \ + /usr/share/locale/locale.alias de_DE.UTF-8 \ + && export LANG=de_DE.UTF-8 \ + && /usr/local/bin/docker-entrypoint.sh postgres -c fsync=off""") + .waitingFor( + new LogMessageWaitStrategy() + .withRegEx( + ".*Datenbanksystem ist bereit, um Verbindungen anzunehmen.*\\s") + .withTimes(2) + .withStartupTimeout(Duration.of(60, SECONDS)))); + } + } + default -> Optional.empty(); + }; } public static DataSource createDataSource(JdbcDatabaseContainer container) { diff --git a/common/kadai-common-test/src/main/java/io/kadai/common/test/security/JaasExtension.java b/common/kadai-common-test/src/main/java/io/kadai/common/test/security/JaasExtension.java index 0ad27b395..e63793a2d 100644 --- a/common/kadai-common-test/src/main/java/io/kadai/common/test/security/JaasExtension.java +++ b/common/kadai-common-test/src/main/java/io/kadai/common/test/security/JaasExtension.java @@ -70,8 +70,7 @@ private static void persistDynamicContainerChildren( Iterable nodes, Map> childrenMap) { nodes.forEach( node -> { - if (node instanceof DynamicContainer) { - DynamicContainer container = (DynamicContainer) node; + if (node instanceof DynamicContainer container) { List children = container.getChildren().collect(Collectors.toList()); childrenMap.put(container.hashCode() + container.getDisplayName(), children); persistDynamicContainerChildren(children, childrenMap); @@ -81,8 +80,7 @@ private static void persistDynamicContainerChildren( private static DynamicNode duplicateDynamicNode( DynamicNode node, Map> lookupMap) { - if (node instanceof DynamicContainer) { - DynamicContainer container = (DynamicContainer) node; + if (node instanceof DynamicContainer container) { Stream children = lookupMap.get(node.hashCode() + node.getDisplayName()).stream() .map(x -> duplicateDynamicNode(x, lookupMap)); @@ -191,17 +189,17 @@ public T interceptTestFactoryMethod( Iterable newChildrenForDynamicContainer; // TestFactory must have one of the following return types. See link above for further details - if (factoryResult instanceof DynamicNode) { - newChildrenForDynamicContainer = Collections.singleton((DynamicNode) factoryResult); - } else if (factoryResult instanceof Stream) { - Stream nodes = (Stream) factoryResult; + if (factoryResult instanceof DynamicNode dynamicNode) { + newChildrenForDynamicContainer = Collections.singleton(dynamicNode); + } else if (factoryResult instanceof Stream stream) { + Stream nodes = (Stream) stream; newChildrenForDynamicContainer = nodes.toList(); - } else if (factoryResult instanceof Iterable) { - newChildrenForDynamicContainer = (Iterable) factoryResult; - } else if (factoryResult instanceof Iterator) { - newChildrenForDynamicContainer = () -> (Iterator) factoryResult; - } else if (factoryResult instanceof DynamicNode[]) { - newChildrenForDynamicContainer = Arrays.asList((DynamicNode[]) factoryResult); + } else if (factoryResult instanceof Iterable iterable) { + newChildrenForDynamicContainer = (Iterable) iterable; + } else if (factoryResult instanceof Iterator iterator) { + newChildrenForDynamicContainer = () -> (Iterator) iterator; + } else if (factoryResult instanceof DynamicNode[] dynamicNodes) { + newChildrenForDynamicContainer = Arrays.asList(dynamicNodes); } else { throw new SystemException( String.format( diff --git a/common/kadai-common/src/main/java/io/kadai/common/api/CustomHoliday.java b/common/kadai-common/src/main/java/io/kadai/common/api/CustomHoliday.java index b3020c70b..19e24360e 100644 --- a/common/kadai-common/src/main/java/io/kadai/common/api/CustomHoliday.java +++ b/common/kadai-common/src/main/java/io/kadai/common/api/CustomHoliday.java @@ -20,42 +20,22 @@ import java.util.Objects; -public final class CustomHoliday { - - private final Integer day; - private final Integer month; - - public CustomHoliday(Integer day, Integer month) { - this.day = day; - this.month = month; - } +public record CustomHoliday(Integer day, Integer month) { public static CustomHoliday of(Integer day, Integer month) { return new CustomHoliday(day, month); } - public Integer getDay() { - return day; - } - - public Integer getMonth() { - return month; - } - - @Override - public int hashCode() { - return Objects.hash(day, month); - } - @Override public boolean equals(Object obj) { if (this == obj) { return true; } - if (!(obj instanceof CustomHoliday)) { + + if (!(obj instanceof CustomHoliday other)) { return false; } - CustomHoliday other = (CustomHoliday) obj; + return Objects.equals(day, other.day) && Objects.equals(month, other.month); } diff --git a/common/kadai-common/src/main/java/io/kadai/common/internal/configuration/DbSchemaCreator.java b/common/kadai-common/src/main/java/io/kadai/common/internal/configuration/DbSchemaCreator.java index 9fb84521c..75449132e 100644 --- a/common/kadai-common/src/main/java/io/kadai/common/internal/configuration/DbSchemaCreator.java +++ b/common/kadai-common/src/main/java/io/kadai/common/internal/configuration/DbSchemaCreator.java @@ -83,8 +83,9 @@ public boolean run() throws SQLException { if (LOGGER.isDebugEnabled()) { LOGGER.debug(outWriter.toString()); } - if (!errorWriter.toString().trim().isEmpty()) { - LOGGER.error(errorWriter.toString()); + if (!errorWriter.getBuffer().isEmpty()) { + String errorLogMessage = errorWriter.toString(); + LOGGER.error(errorLogMessage); } return false; } diff --git a/common/kadai-common/src/main/java/io/kadai/common/internal/util/ComparableVersion.java b/common/kadai-common/src/main/java/io/kadai/common/internal/util/ComparableVersion.java index de45f3211..faab8797b 100644 --- a/common/kadai-common/src/main/java/io/kadai/common/internal/util/ComparableVersion.java +++ b/common/kadai-common/src/main/java/io/kadai/common/internal/util/ComparableVersion.java @@ -269,23 +269,18 @@ public int compareTo(Item item) { return (value == 0) ? 0 : 1; // 1.0 == 1, 1.1 > 1 } - switch (item.getType()) { - case INT_ITEM: + return switch (item.getType()) { + case INT_ITEM -> { int itemValue = ((IntItem) item).value; - return Integer.compare(value, itemValue); - case LONG_ITEM: - case BIGINTEGER_ITEM: - return -1; - - case STRING_ITEM: - return 1; // 1.1 > 1-sp + yield Integer.compare(value, itemValue); + } + case LONG_ITEM, BIGINTEGER_ITEM -> -1; + case STRING_ITEM -> 1; // 1.1 > 1-sp - case LIST_ITEM: - return 1; // 1.1 > 1-1 + case LIST_ITEM -> 1; // 1.1 > 1-1 - default: - throw new IllegalStateException("invalid item: " + item.getClass()); - } + default -> throw new IllegalStateException("invalid item: " + item.getClass()); + }; } @Override @@ -406,23 +401,15 @@ public int compareTo(Item item) { return BigInteger.ZERO.equals(value) ? 0 : 1; // 1.0 == 1, 1.1 > 1 } - switch (item.getType()) { - case INT_ITEM: - case LONG_ITEM: - return 1; + return switch (item.getType()) { + case INT_ITEM, LONG_ITEM -> 1; + case BIGINTEGER_ITEM -> value.compareTo(((BigIntegerItem) item).value); + case STRING_ITEM -> 1; // 1.1 > 1-sp - case BIGINTEGER_ITEM: - return value.compareTo(((BigIntegerItem) item).value); + case LIST_ITEM -> 1; // 1.1 > 1-1 - case STRING_ITEM: - return 1; // 1.1 > 1-sp - - case LIST_ITEM: - return 1; // 1.1 > 1-1 - - default: - throw new IllegalStateException("invalid item: " + item.getClass()); - } + default -> throw new IllegalStateException("invalid item: " + item.getClass()); + }; } @Override @@ -526,22 +513,15 @@ public int compareTo(Item item) { // 1-rc < 1, 1-ga > 1 return comparableQualifier(value).compareTo(RELEASE_VERSION_INDEX); } - switch (item.getType()) { - case INT_ITEM: - case LONG_ITEM: - case BIGINTEGER_ITEM: - return -1; // 1.any < 1.1 ? + return switch (item.getType()) { + case INT_ITEM, LONG_ITEM, BIGINTEGER_ITEM -> -1; // 1.any < 1.1 ? - case STRING_ITEM: - return comparableQualifier(value) - .compareTo(comparableQualifier(((StringItem) item).value)); + case STRING_ITEM -> comparableQualifier(value) + .compareTo(comparableQualifier(((StringItem) item).value)); + case LIST_ITEM -> -1; // 1.any < 1-1 - case LIST_ITEM: - return -1; // 1.any < 1-1 - - default: - throw new IllegalStateException("invalid item: " + item.getClass()); - } + default -> throw new IllegalStateException("invalid item: " + item.getClass()); + }; } @Override @@ -596,9 +576,7 @@ public int compareTo(Item item) { return first.compareTo(null); } switch (item.getType()) { - case INT_ITEM: - case LONG_ITEM: - case BIGINTEGER_ITEM: + case INT_ITEM, LONG_ITEM, BIGINTEGER_ITEM: return -1; // 1-1 < 1.0.x case STRING_ITEM: diff --git a/common/kadai-common/src/main/java/io/kadai/common/internal/workingtime/WorkingTimeCalculatorImpl.java b/common/kadai-common/src/main/java/io/kadai/common/internal/workingtime/WorkingTimeCalculatorImpl.java index 293d8f814..169f06487 100644 --- a/common/kadai-common/src/main/java/io/kadai/common/internal/workingtime/WorkingTimeCalculatorImpl.java +++ b/common/kadai-common/src/main/java/io/kadai/common/internal/workingtime/WorkingTimeCalculatorImpl.java @@ -245,13 +245,6 @@ private ZonedDateTime toZonedDateTime(Instant instant) { return instant.atZone(zoneId); } - private ZonedDateTime toZonedDateTime(LocalDateTime localDateTime) { - return localDateTime.atZone(zoneId); - } - - private ZonedDateTime toZonedDateTime(LocalDate day, LocalTime time) { - return toZonedDateTime(LocalDateTime.of(day, time)); - } private LocalDate toLocalDate(Instant instant) { return LocalDate.ofInstant(instant, zoneId); @@ -271,6 +264,14 @@ public WorkSlot(LocalDate day, LocalTimeInterval interval) { } } + private ZonedDateTime toZonedDateTime(LocalDate day, LocalTime time) { + return toZonedDateTime(LocalDateTime.of(day, time)); + } + + private ZonedDateTime toZonedDateTime(LocalDateTime localDateTime) { + return localDateTime.atZone(zoneId); + } + private ZonedDateTime subtractWorkingTime(ZonedDateTime workStart, Duration workingTime) { // _workStart_ might be outside the working hours. We need to adjust the end accordingly. ZonedDateTime latestWorkEnd = min(workStart, end); diff --git a/common/kadai-common/src/test/java/io/kadai/common/internal/util/CollectionUtilTest.java b/common/kadai-common/src/test/java/io/kadai/common/internal/util/CollectionUtilTest.java index ad1786e4c..03cf75681 100644 --- a/common/kadai-common/src/test/java/io/kadai/common/internal/util/CollectionUtilTest.java +++ b/common/kadai-common/src/test/java/io/kadai/common/internal/util/CollectionUtilTest.java @@ -22,7 +22,6 @@ import java.util.Collection; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.IntStream; import org.junit.jupiter.api.Test; @@ -31,7 +30,7 @@ class CollectionUtilTest { @Test void should_SplitListIntoChunks_When_CallingPartitionBasedOnSize() { List listWith1000Entries = - IntStream.rangeClosed(1, 1000).boxed().collect(Collectors.toList()); + IntStream.rangeClosed(1, 1000).boxed().toList(); assertThat(listWith1000Entries).hasSize(1000); Collection> partitions = CollectionUtil.partitionBasedOnSize(listWith1000Entries, 100); diff --git a/common/kadai-common/src/test/java/io/kadai/common/internal/workingtime/WorkingTimeCalculatorImplTest.java b/common/kadai-common/src/test/java/io/kadai/common/internal/workingtime/WorkingTimeCalculatorImplTest.java index b1ffc8580..5e53da2e8 100644 --- a/common/kadai-common/src/test/java/io/kadai/common/internal/workingtime/WorkingTimeCalculatorImplTest.java +++ b/common/kadai-common/src/test/java/io/kadai/common/internal/workingtime/WorkingTimeCalculatorImplTest.java @@ -163,14 +163,19 @@ void currentTimeIsAfterWorkingHours() { @Test void withNegativeDuration() { + Instant workStart = Instant.now(); + Duration workingTime = Duration.ofMillis(-1); + assertThatExceptionOfType(InvalidArgumentException.class) - .isThrownBy(() -> cut.addWorkingTime(Instant.now(), Duration.ofMillis(-1))); + .isThrownBy(() -> cut.addWorkingTime(workStart, workingTime)); } @Test void withNullInstant() { + Duration workingTime = Duration.ofMillis(1); + assertThatExceptionOfType(NullPointerException.class) - .isThrownBy(() -> cut.addWorkingTime(null, Duration.ofMillis(1))); + .isThrownBy(() -> cut.addWorkingTime(null, workingTime)); } } @@ -281,14 +286,19 @@ void currentTimeIsAfterWorkingHours() { @Test void withNegativeDuration() { + Instant workStart = Instant.now(); + Duration workingTime = Duration.ofMillis(-1); + assertThatExceptionOfType(InvalidArgumentException.class) - .isThrownBy(() -> cut.subtractWorkingTime(Instant.now(), Duration.ofMillis(-1))); + .isThrownBy(() -> cut.subtractWorkingTime(workStart, workingTime)); } @Test void withNullInstant() { + Duration workingTime = Duration.ofMillis(1); + assertThatExceptionOfType(NullPointerException.class) - .isThrownBy(() -> cut.subtractWorkingTime(null, Duration.ofMillis(1))); + .isThrownBy(() -> cut.subtractWorkingTime(null, workingTime)); } } @@ -377,14 +387,18 @@ void worksIfFromIsAfterTo() { @Test void failsIfFromIsNull() { + Instant second = Instant.now(); + assertThatExceptionOfType(InvalidArgumentException.class) - .isThrownBy(() -> cut.workingTimeBetween(null, Instant.now())); + .isThrownBy(() -> cut.workingTimeBetween(null, second)); } @Test void failsIfToIsNull() { + Instant first = Instant.now(); + assertThatExceptionOfType(InvalidArgumentException.class) - .isThrownBy(() -> cut.workingTimeBetween(Instant.now(), null)); + .isThrownBy(() -> cut.workingTimeBetween(first, null)); } } } diff --git a/common/kadai-common/src/test/java/io/kadai/common/internal/workingtime/WorkingTimeScheduleTest.java b/common/kadai-common/src/test/java/io/kadai/common/internal/workingtime/WorkingTimeScheduleTest.java index 07e8bdce0..cf686f89d 100644 --- a/common/kadai-common/src/test/java/io/kadai/common/internal/workingtime/WorkingTimeScheduleTest.java +++ b/common/kadai-common/src/test/java/io/kadai/common/internal/workingtime/WorkingTimeScheduleTest.java @@ -25,46 +25,49 @@ import java.time.LocalTime; import java.util.Map; import java.util.Set; +import java.util.SortedSet; import org.junit.jupiter.api.Test; class WorkingTimeScheduleTest { @Test void creationFailsIfWorkingTimesOverlap() { + Map> workingTimeByDayOfWeek = + Map.of( + DayOfWeek.MONDAY, + Set.of( + new LocalTimeInterval(LocalTime.MIN, LocalTime.MAX), + new LocalTimeInterval(LocalTime.NOON, LocalTime.MAX))); + assertThatExceptionOfType(IllegalArgumentException.class) - .isThrownBy( - () -> - new WorkingTimeSchedule( - Map.of( - DayOfWeek.MONDAY, - Set.of( - new LocalTimeInterval(LocalTime.MIN, LocalTime.MAX), - new LocalTimeInterval(LocalTime.NOON, LocalTime.MAX))))); + .isThrownBy(() -> new WorkingTimeSchedule(workingTimeByDayOfWeek)); } @Test void workSlotsForReturnsUnmodifiableSets() { - WorkingTimeSchedule cut = + SortedSet workSlots = new WorkingTimeSchedule( - Map.of(DayOfWeek.MONDAY, Set.of(new LocalTimeInterval(LocalTime.MIN, LocalTime.MAX)))); + Map.of( + DayOfWeek.MONDAY, Set.of(new LocalTimeInterval(LocalTime.MIN, LocalTime.MAX)))) + .workSlotsFor(DayOfWeek.MONDAY); + + LocalTimeInterval workSlot = new LocalTimeInterval(LocalTime.NOON, LocalTime.MIDNIGHT); assertThatExceptionOfType(UnsupportedOperationException.class) - .isThrownBy( - () -> - cut.workSlotsFor(DayOfWeek.MONDAY) - .add(new LocalTimeInterval(LocalTime.NOON, LocalTime.MIDNIGHT))); + .isThrownBy(() -> workSlots.add(workSlot)); } @Test void workSlotsForReversedReturnsUnmodifiableSets() { - WorkingTimeSchedule cut = + SortedSet workSlots = new WorkingTimeSchedule( - Map.of(DayOfWeek.MONDAY, Set.of(new LocalTimeInterval(LocalTime.MIN, LocalTime.MAX)))); + Map.of( + DayOfWeek.MONDAY, Set.of(new LocalTimeInterval(LocalTime.MIN, LocalTime.MAX)))) + .workSlotsForReversed(DayOfWeek.MONDAY); + + LocalTimeInterval workSlot = new LocalTimeInterval(LocalTime.NOON, LocalTime.MIDNIGHT); assertThatExceptionOfType(UnsupportedOperationException.class) - .isThrownBy( - () -> - cut.workSlotsForReversed(DayOfWeek.MONDAY) - .add(new LocalTimeInterval(LocalTime.NOON, LocalTime.MIDNIGHT))); + .isThrownBy(() -> workSlots.add(workSlot)); } } diff --git a/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/ClassificationHistoryQueryImpl.java b/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/ClassificationHistoryQueryImpl.java index 4a4009ec5..7178ebf0f 100644 --- a/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/ClassificationHistoryQueryImpl.java +++ b/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/ClassificationHistoryQueryImpl.java @@ -31,8 +31,6 @@ import java.util.ArrayList; import java.util.List; import org.apache.ibatis.session.RowBounds; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class ClassificationHistoryQueryImpl implements ClassificationHistoryQuery { @@ -45,12 +43,6 @@ public class ClassificationHistoryQueryImpl implements ClassificationHistoryQuer private static final String LINK_TO_COUNTER = CLASSIFICATION_PACKAGE_PATH + "ClassificationHistoryQueryMapper.countHistoryEvents"; - private static final Logger LOGGER = - LoggerFactory.getLogger(ClassificationHistoryQueryImpl.class); - - private static final String SQL_EXCEPTION_MESSAGE = - "Method openConnection() could not open a connection to the database."; - private final InternalKadaiEngine internalKadaiEngine; private final List orderBy = new ArrayList<>(); @@ -408,27 +400,18 @@ public ClassificationHistoryQuery orderByType(SortDirection sortDirection) { public ClassificationHistoryQuery orderByCustomAttribute(int num, SortDirection sortDirection) throws InvalidArgumentException { - switch (num) { - case 1: - return addOrderCriteria("CUSTOM_1", sortDirection); - case 2: - return addOrderCriteria("CUSTOM_2", sortDirection); - case 3: - return addOrderCriteria("CUSTOM_3", sortDirection); - case 4: - return addOrderCriteria("CUSTOM_4", sortDirection); - case 5: - return addOrderCriteria("CUSTOM_5", sortDirection); - case 6: - return addOrderCriteria("CUSTOM_6", sortDirection); - case 7: - return addOrderCriteria("CUSTOM_7", sortDirection); - case 8: - return addOrderCriteria("CUSTOM_8", sortDirection); - default: - throw new InvalidArgumentException( - "Custom number has to be between 1 and 8, but this is: " + num); - } + return switch (num) { + case 1 -> addOrderCriteria("CUSTOM_1", sortDirection); + case 2 -> addOrderCriteria("CUSTOM_2", sortDirection); + case 3 -> addOrderCriteria("CUSTOM_3", sortDirection); + case 4 -> addOrderCriteria("CUSTOM_4", sortDirection); + case 5 -> addOrderCriteria("CUSTOM_5", sortDirection); + case 6 -> addOrderCriteria("CUSTOM_6", sortDirection); + case 7 -> addOrderCriteria("CUSTOM_7", sortDirection); + case 8 -> addOrderCriteria("CUSTOM_8", sortDirection); + default -> throw new InvalidArgumentException( + "Custom number has to be between 1 and 8, but this is: " + num); + }; } @Override diff --git a/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/TaskHistoryQueryImpl.java b/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/TaskHistoryQueryImpl.java index 9d48442c3..91f44b245 100644 --- a/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/TaskHistoryQueryImpl.java +++ b/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/TaskHistoryQueryImpl.java @@ -30,8 +30,6 @@ import java.util.ArrayList; import java.util.List; import org.apache.ibatis.session.RowBounds; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** Implementation for generating dynamic sql. */ public class TaskHistoryQueryImpl implements TaskHistoryQuery { @@ -43,11 +41,6 @@ public class TaskHistoryQueryImpl implements TaskHistoryQuery { private static final String LINK_TO_COUNTER = "io.kadai.simplehistory.impl.task.TaskHistoryQueryMapper.countHistoryEvents"; - private static final Logger LOGGER = LoggerFactory.getLogger(TaskHistoryQueryImpl.class); - - private static final String SQL_EXCEPTION_MESSAGE = - "Method openConnection() could not open a connection to the database."; - private final InternalKadaiEngine internalKadaiEngine; private final List orderBy; private final List orderColumns; @@ -674,7 +667,7 @@ public List list(int offset, int limit) { @Override public List listValues( TaskHistoryQueryColumnName dbColumnName, SortDirection sortDirection) { - List result = new ArrayList<>(); + List result; this.columnName = dbColumnName; this.orderBy.clear(); this.addOrderCriteria(columnName.toString(), sortDirection); diff --git a/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/WorkbasketHistoryQueryImpl.java b/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/WorkbasketHistoryQueryImpl.java index 14a5861a4..6c7b132b9 100644 --- a/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/WorkbasketHistoryQueryImpl.java +++ b/history/kadai-simplehistory-provider/src/main/java/io/kadai/simplehistory/impl/WorkbasketHistoryQueryImpl.java @@ -31,8 +31,6 @@ import java.util.ArrayList; import java.util.List; import org.apache.ibatis.session.RowBounds; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class WorkbasketHistoryQueryImpl implements WorkbasketHistoryQuery { @@ -43,10 +41,6 @@ public class WorkbasketHistoryQueryImpl implements WorkbasketHistoryQuery { + "WorkbasketHistoryQueryMapper.queryHistoryColumnValues"; private static final String LINK_TO_COUNTER = "io.kadai.simplehistory.impl.workbasket.WorkbasketHistoryQueryMapper.countHistoryEvents"; - private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketHistoryQueryImpl.class); - - private static final String SQL_EXCEPTION_MESSAGE = - "Method openConnection() could not open a connection to the database."; private final InternalKadaiEngine internalKadaiEngine; private final List orderColumns; @@ -517,7 +511,7 @@ public List list(int offset, int limit) { @Override public List listValues( WorkbasketHistoryQueryColumnName dbColumnName, SortDirection sortDirection) { - List result = new ArrayList<>(); + List result; this.columnName = dbColumnName; List cacheOrderBy = this.orderBy; this.orderBy.clear(); diff --git a/history/kadai-simplehistory-provider/src/test/java/acceptance/events/workbasket/CreateHistoryEventOnWorkbasketMarkedForDeletionAccTest.java b/history/kadai-simplehistory-provider/src/test/java/acceptance/events/workbasket/CreateHistoryEventOnWorkbasketMarkedForDeletionAccTest.java index 8923ca485..7b7951be6 100644 --- a/history/kadai-simplehistory-provider/src/test/java/acceptance/events/workbasket/CreateHistoryEventOnWorkbasketMarkedForDeletionAccTest.java +++ b/history/kadai-simplehistory-provider/src/test/java/acceptance/events/workbasket/CreateHistoryEventOnWorkbasketMarkedForDeletionAccTest.java @@ -60,7 +60,7 @@ void should_CreateWorkbasketMarkedForDeletionHistoryEvent_When_WorkbasketIsMarke String eventType = events.get(0).getEventType(); String eventWorkbasketId = events.get(0).getWorkbasketId(); - String details = workbasketHistoryEventMapper.findById(events.get(0).getId()).getDetails(); + workbasketHistoryEventMapper.findById(events.get(0).getId()); assertThat(eventType).isEqualTo(WorkbasketHistoryEventType.MARKED_FOR_DELETION.getName()); diff --git a/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/ClassificationHistoryQueryImplTest.java b/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/ClassificationHistoryQueryImplTest.java index 2c22167fc..aef894060 100644 --- a/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/ClassificationHistoryQueryImplTest.java +++ b/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/ClassificationHistoryQueryImplTest.java @@ -53,11 +53,15 @@ void setup() { } @Test - void should_returnList_When_CallingListMethodOnTaskHistoryQuery() throws Exception { - List returnList = new ArrayList<>(); - returnList.add( - createHistoryEvent( - ClassificationHistoryEventType.CREATED.getName(), "admin", "someDetails")); + void should_returnList_When_CallingListMethodOnTaskHistoryQuery() { + ClassificationHistoryEvent historyEvent = new ClassificationHistoryEvent(); + historyEvent.setId( + IdGenerator.generateWithPrefix(IdGenerator.ID_PREFIX_CLASSIFICATION_HISTORY_EVENT)); + historyEvent.setUserId("admin"); + historyEvent.setDetails("someDetails"); + historyEvent.setEventType(ClassificationHistoryEventType.CREATED.getName()); + + List returnList = List.of(historyEvent); doNothing().when(internalKadaiEngineMock).openConnection(); doNothing().when(internalKadaiEngineMock).returnConnection(); @@ -73,14 +77,4 @@ void should_returnList_When_CallingListMethodOnTaskHistoryQuery() throws Excepti validateMockitoUsage(); assertThat(result).isEqualTo(returnList); } - - private ClassificationHistoryEvent createHistoryEvent( - String type, String userId, String details) { - ClassificationHistoryEvent he = new ClassificationHistoryEvent(); - he.setId(IdGenerator.generateWithPrefix(IdGenerator.ID_PREFIX_CLASSIFICATION_HISTORY_EVENT)); - he.setUserId(userId); - he.setDetails(details); - he.setEventType(type); - return he; - } } diff --git a/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/SimpleHistoryServiceImplTest.java b/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/SimpleHistoryServiceImplTest.java index 7c43d3067..e0ed17cd8 100644 --- a/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/SimpleHistoryServiceImplTest.java +++ b/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/SimpleHistoryServiceImplTest.java @@ -70,7 +70,7 @@ class SimpleHistoryServiceImplTest { @Mock private SqlSession sqlSessionMock; @Test - void should_VerifyMethodInvocations_When_CreateTaskHistoryEvent() throws Exception { + void should_VerifyMethodInvocations_When_CreateTaskHistoryEvent() { TaskHistoryEvent expectedWb = AbstractAccTest.createTaskHistoryEvent( "wbKey1", "taskId1", "type1", "wbKey2", "someUserId", "someDetails"); @@ -81,7 +81,7 @@ void should_VerifyMethodInvocations_When_CreateTaskHistoryEvent() throws Excepti } @Test - void should_VerifyMethodInvocations_When_CreateWorkbasketHisoryEvent() throws Exception { + void should_VerifyMethodInvocations_When_CreateWorkbasketHisoryEvent() { WorkbasketHistoryEvent expectedEvent = AbstractAccTest.createWorkbasketHistoryEvent( "wbKey1", WorkbasketHistoryEventType.CREATED.getName(), "someUserId", "someDetails"); @@ -92,7 +92,7 @@ void should_VerifyMethodInvocations_When_CreateWorkbasketHisoryEvent() throws Ex } @Test - void should_VerifyMethodInvocations_When_QueryTaskHistoryEvent() throws Exception { + void should_VerifyMethodInvocations_When_QueryTaskHistoryEvent() { List returnList = new ArrayList<>(); returnList.add( AbstractAccTest.createTaskHistoryEvent( @@ -118,7 +118,7 @@ void should_VerifyMethodInvocations_When_QueryTaskHistoryEvent() throws Exceptio } @Test - void should_VerifyMethodInvocations_When_QueryWorkbasketHisoryEvent() throws Exception { + void should_VerifyMethodInvocations_When_QueryWorkbasketHisoryEvent() { List returnList = new ArrayList<>(); returnList.add( AbstractAccTest.createWorkbasketHistoryEvent( diff --git a/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/WorkbasketHistoryQueryImplTest.java b/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/WorkbasketHistoryQueryImplTest.java index b60cf01c1..63cdc10be 100644 --- a/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/WorkbasketHistoryQueryImplTest.java +++ b/history/kadai-simplehistory-provider/src/test/java/io/kadai/simplehistory/impl/WorkbasketHistoryQueryImplTest.java @@ -55,15 +55,17 @@ void setup() { } @Test - void should_ReturnList_When_CallingListMethodOnWorkbasketHistoryQuery() throws Exception { - List returnList = new ArrayList<>(); - returnList.add( - createHistoryEvent( - "abcd", - WorkbasketHistoryEventType.CREATED.getName(), - "someUserId", - "someDetails", - null)); + void should_ReturnList_When_CallingListMethodOnWorkbasketHistoryQuery() { + WorkbasketHistoryEvent historyEvent = new WorkbasketHistoryEvent(); + historyEvent.setId( + IdGenerator.generateWithPrefix(IdGenerator.ID_PREFIX_WORKBASKET_HISTORY_EVENT)); + historyEvent.setUserId("someUserId"); + historyEvent.setDetails("someDetails"); + historyEvent.setKey("abcd"); + historyEvent.setEventType(WorkbasketHistoryEventType.CREATED.getName()); + historyEvent.setCreated(null); + + List returnList = List.of(historyEvent); TimeInterval interval = new TimeInterval(Instant.now().minusNanos(1000), Instant.now()); doNothing().when(internalKadaiEngineMock).openConnection(); @@ -82,16 +84,4 @@ void should_ReturnList_When_CallingListMethodOnWorkbasketHistoryQuery() throws E validateMockitoUsage(); assertThat(result).isEqualTo(returnList); } - - private WorkbasketHistoryEvent createHistoryEvent( - String workbasketKey, String type, String userId, String details, Instant created) { - WorkbasketHistoryEvent he = new WorkbasketHistoryEvent(); - he.setId(IdGenerator.generateWithPrefix(IdGenerator.ID_PREFIX_WORKBASKET_HISTORY_EVENT)); - he.setUserId(userId); - he.setDetails(details); - he.setKey(workbasketKey); - he.setEventType(type); - he.setCreated(created); - return he; - } } diff --git a/history/kadai-simplehistory-rest-spring/src/test/java/io/kadai/simplehistory/rest/TaskHistoryEventControllerIntTest.java b/history/kadai-simplehistory-rest-spring/src/test/java/io/kadai/simplehistory/rest/TaskHistoryEventControllerIntTest.java index 43e551505..6219f5bc9 100644 --- a/history/kadai-simplehistory-rest-spring/src/test/java/io/kadai/simplehistory/rest/TaskHistoryEventControllerIntTest.java +++ b/history/kadai-simplehistory-rest-spring/src/test/java/io/kadai/simplehistory/rest/TaskHistoryEventControllerIntTest.java @@ -28,7 +28,6 @@ import io.kadai.rest.test.RestHelper; import io.kadai.simplehistory.rest.models.TaskHistoryEventPagedRepresentationModel; import io.kadai.simplehistory.rest.models.TaskHistoryEventRepresentationModel; -import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.time.Instant; @@ -54,11 +53,11 @@ class TaskHistoryEventControllerIntTest { private static final ParameterizedTypeReference TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE = - new ParameterizedTypeReference() {}; + new ParameterizedTypeReference<>() {}; private static final ParameterizedTypeReference TASK_HISTORY_EVENT_REPRESENTATION_MODEL_TYPE = - new ParameterizedTypeReference() {}; + new ParameterizedTypeReference<>() {}; private final RestHelper restHelper; @@ -238,8 +237,7 @@ void should_ApplyPaging_When_PagingIsRequested() { // region Get Specific Task History Event @Test - void should_GenerateSelfLink_When_SpecificTaskHistoryEventIsRequested() - throws UnsupportedEncodingException { + void should_GenerateSelfLink_When_SpecificTaskHistoryEventIsRequested() { String id = "THI:000000000000000000000000000000000000"; String expectedUrl = UriComponentsBuilder.fromPath(HistoryRestEndpoints.URL_HISTORY_EVENTS_ID) diff --git a/lib/kadai-cdi/src/test/java/io/kadai/KadaiCdiTestRestController.java b/lib/kadai-cdi/src/test/java/io/kadai/KadaiCdiTestRestController.java index eef44b236..f955a1ad8 100644 --- a/lib/kadai-cdi/src/test/java/io/kadai/KadaiCdiTestRestController.java +++ b/lib/kadai-cdi/src/test/java/io/kadai/KadaiCdiTestRestController.java @@ -80,7 +80,7 @@ public Response startTask() throws Exception { Task result = kadaiEjb.getTaskService().createTask(task); - LOGGER.info(result.getId() + ":" + result.getOwner()); + LOGGER.info("{}:{}", result.getId(), result.getOwner()); return Response.status(200).entity(result.getId()).build(); } diff --git a/lib/kadai-core-test/src/test/java/acceptance/ArchitectureTest.java b/lib/kadai-core-test/src/test/java/acceptance/ArchitectureTest.java index 6b212cb5a..195a57dce 100644 --- a/lib/kadai-core-test/src/test/java/acceptance/ArchitectureTest.java +++ b/lib/kadai-core-test/src/test/java/acceptance/ArchitectureTest.java @@ -226,7 +226,7 @@ public void check(JavaClass item, ConditionEvents events) { private static ArchCondition notUseCurrentTimestampSqlFunction() { Function> getSqlStringsFromMethod = wrap( - (method) -> { + method -> { List values = new ArrayList<>(); final List