TSK-1572: replaced CURRENT_TIMESTAMP db function with Instant
This commit is contained in:
parent
32cf6e2b53
commit
66ef87aeef
|
@ -38,7 +38,7 @@ public interface JobMapper {
|
|||
@Select(
|
||||
"<script> SELECT JOB_ID, PRIORITY, CREATED, DUE, STATE, LOCKED_BY, LOCK_EXPIRES, TYPE, RETRY_COUNT, ARGUMENTS "
|
||||
+ "FROM SCHEDULED_JOB "
|
||||
+ "WHERE STATE IN ( 'READY') AND (DUE is null OR DUE < #{now}) AND (LOCK_EXPIRES is null OR LOCK_EXPIRES < CURRENT_TIMESTAMP) AND RETRY_COUNT > 0 "
|
||||
+ "WHERE STATE IN ( 'READY') AND (DUE is null OR DUE < #{now}) AND (LOCK_EXPIRES is null OR LOCK_EXPIRES < #{now}) AND RETRY_COUNT > 0 "
|
||||
+ "ORDER BY PRIORITY DESC "
|
||||
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
|
||||
+ "</script>")
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pro.taskana.monitor.internal;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
@ -23,9 +24,9 @@ public interface MonitorMapper {
|
|||
@Select(
|
||||
"<script>"
|
||||
+ "SELECT B.WORKBASKET_KEY, B.AGE_IN_DAYS, COUNT(B.AGE_IN_DAYS) AS NUMBER_OF_TASKS FROM ("
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT T.WORKBASKET_KEY, (DAYS(T.${timestamp}) - DAYS(CURRENT_TIMESTAMP)) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT T.WORKBASKET_KEY, DATEDIFF('DAY', CURRENT_TIMESTAMP, T.${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT T.WORKBASKET_KEY, DATE_PART('DAY', T.${timestamp} - CURRENT_TIMESTAMP) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT T.WORKBASKET_KEY, (DAYS(T.${timestamp}) - DAYS(#{now})) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT T.WORKBASKET_KEY, DATEDIFF('DAY', #{now}, T.${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT T.WORKBASKET_KEY, DATE_PART('DAY', T.${timestamp} - #{now}) as AGE_IN_DAYS </if> "
|
||||
+ "FROM TASK AS T LEFT JOIN ATTACHMENT AS A ON T.ID = A.TASK_ID "
|
||||
+ "<where>"
|
||||
+ "<if test=\"workbasketIds != null\">"
|
||||
|
@ -66,6 +67,7 @@ public interface MonitorMapper {
|
|||
@Result(column = "AGE_IN_DAYS", property = "ageInDays")
|
||||
@Result(column = "NUMBER_OF_TASKS", property = "numberOfTasks")
|
||||
List<MonitorQueryItem> getTaskCountOfWorkbaskets(
|
||||
@Param("now") Instant now,
|
||||
@Param("workbasketIds") List<String> workbasketIds,
|
||||
@Param("states") List<TaskState> states,
|
||||
@Param("classificationCategories") List<String> classificationCategories,
|
||||
|
@ -80,9 +82,9 @@ public interface MonitorMapper {
|
|||
@Select(
|
||||
"<script>"
|
||||
+ "SELECT B.CLASSIFICATION_CATEGORY, B.AGE_IN_DAYS, COUNT(B.AGE_IN_DAYS) AS NUMBER_OF_TASKS FROM ("
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT CLASSIFICATION_CATEGORY, (DAYS(${timestamp}) - DAYS(CURRENT_TIMESTAMP)) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT CLASSIFICATION_CATEGORY, DATEDIFF('DAY', CURRENT_TIMESTAMP, ${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT CLASSIFICATION_CATEGORY, DATE_PART('DAY', ${timestamp} - CURRENT_TIMESTAMP) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT CLASSIFICATION_CATEGORY, (DAYS(${timestamp}) - DAYS(#{now})) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT CLASSIFICATION_CATEGORY, DATEDIFF('DAY', #{now}, ${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT CLASSIFICATION_CATEGORY, DATE_PART('DAY', ${timestamp} - #{now}) as AGE_IN_DAYS </if> "
|
||||
+ "FROM TASK "
|
||||
+ "<where>"
|
||||
+ "<if test=\"workbasketIds != null\">"
|
||||
|
@ -115,6 +117,7 @@ public interface MonitorMapper {
|
|||
@Result(column = "AGE_IN_DAYS", property = "ageInDays")
|
||||
@Result(column = "NUMBER_OF_TASKS", property = "numberOfTasks")
|
||||
List<MonitorQueryItem> getTaskCountOfCategories(
|
||||
@Param("now") Instant now,
|
||||
@Param("workbasketIds") List<String> workbasketIds,
|
||||
@Param("states") List<TaskState> states,
|
||||
@Param("classificationCategories") List<String> classificationCategories,
|
||||
|
@ -127,9 +130,9 @@ public interface MonitorMapper {
|
|||
@Select(
|
||||
"<script>"
|
||||
+ "SELECT B.CLASSIFICATION_KEY, B.AGE_IN_DAYS, COUNT(B.AGE_IN_DAYS) AS NUMBER_OF_TASKS FROM ("
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT CLASSIFICATION_KEY, (DAYS(${timestamp}) - DAYS(CURRENT_TIMESTAMP)) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT CLASSIFICATION_KEY, DATEDIFF('DAY', CURRENT_TIMESTAMP, ${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT CLASSIFICATION_KEY, DATE_PART('DAY', ${timestamp} - CURRENT_TIMESTAMP) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT CLASSIFICATION_KEY, (DAYS(${timestamp}) - DAYS(#{now})) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT CLASSIFICATION_KEY, DATEDIFF('DAY', #{now}, ${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT CLASSIFICATION_KEY, DATE_PART('DAY', ${timestamp} - #{now}) as AGE_IN_DAYS </if> "
|
||||
+ "FROM TASK "
|
||||
+ "<where>"
|
||||
+ "<if test=\"workbasketIds != null\">"
|
||||
|
@ -162,6 +165,7 @@ public interface MonitorMapper {
|
|||
@Result(column = "AGE_IN_DAYS", property = "ageInDays")
|
||||
@Result(column = "NUMBER_OF_TASKS", property = "numberOfTasks")
|
||||
List<MonitorQueryItem> getTaskCountOfClassifications(
|
||||
@Param("now") Instant now,
|
||||
@Param("workbasketIds") List<String> workbasketIds,
|
||||
@Param("states") List<TaskState> states,
|
||||
@Param("classificationCategories") List<String> classificationCategories,
|
||||
|
@ -174,9 +178,9 @@ public interface MonitorMapper {
|
|||
@Select(
|
||||
"<script>"
|
||||
+ "SELECT B.TASK_CLASSIFICATION_KEY, B.ATTACHMENT_CLASSIFICATION_KEY, B.AGE_IN_DAYS, COUNT(B.AGE_IN_DAYS) AS NUMBER_OF_TASKS FROM ("
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT T.CLASSIFICATION_KEY as TASK_CLASSIFICATION_KEY, A.CLASSIFICATION_KEY as ATTACHMENT_CLASSIFICATION_KEY, (DAYS(T.${timestamp}) - DAYS(CURRENT_TIMESTAMP)) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT T.CLASSIFICATION_KEY as TASK_CLASSIFICATION_KEY, A.CLASSIFICATION_KEY as ATTACHMENT_CLASSIFICATION_KEY, DATEDIFF('DAY', CURRENT_TIMESTAMP, T.${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT T.CLASSIFICATION_KEY as TASK_CLASSIFICATION_KEY, A.CLASSIFICATION_KEY as ATTACHMENT_CLASSIFICATION_KEY, DATE_PART('DAY', T.${timestamp} - CURRENT_TIMESTAMP) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT T.CLASSIFICATION_KEY as TASK_CLASSIFICATION_KEY, A.CLASSIFICATION_KEY as ATTACHMENT_CLASSIFICATION_KEY, (DAYS(T.${timestamp}) - DAYS(#{now})) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT T.CLASSIFICATION_KEY as TASK_CLASSIFICATION_KEY, A.CLASSIFICATION_KEY as ATTACHMENT_CLASSIFICATION_KEY, DATEDIFF('DAY', #{now}, T.${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT T.CLASSIFICATION_KEY as TASK_CLASSIFICATION_KEY, A.CLASSIFICATION_KEY as ATTACHMENT_CLASSIFICATION_KEY, DATE_PART('DAY', T.${timestamp} - #{now}) as AGE_IN_DAYS </if> "
|
||||
+ "FROM TASK AS T LEFT JOIN ATTACHMENT AS A ON T.ID = A.TASK_ID "
|
||||
+ "<where>"
|
||||
+ "<if test=\"workbasketIds != null\">"
|
||||
|
@ -210,6 +214,7 @@ public interface MonitorMapper {
|
|||
@Result(column = "AGE_IN_DAYS", property = "ageInDays")
|
||||
@Result(column = "NUMBER_OF_TASKS", property = "numberOfTasks")
|
||||
List<DetailedMonitorQueryItem> getTaskCountOfDetailedClassifications(
|
||||
@Param("now") Instant now,
|
||||
@Param("workbasketIds") List<String> workbasketIds,
|
||||
@Param("states") List<TaskState> states,
|
||||
@Param("classificationCategories") List<String> classificationCategories,
|
||||
|
@ -222,9 +227,9 @@ public interface MonitorMapper {
|
|||
@Select(
|
||||
"<script>"
|
||||
+ "SELECT B.CUSTOM_FIELD, B.AGE_IN_DAYS, COUNT(B.AGE_IN_DAYS) AS NUMBER_OF_TASKS FROM ("
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT ${customField} as CUSTOM_FIELD, (DAYS(${timestamp}) - DAYS(CURRENT_TIMESTAMP)) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT ${customField} as CUSTOM_FIELD, DATEDIFF('DAY', CURRENT_TIMESTAMP, ${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT ${customField} as CUSTOM_FIELD, DATE_PART('DAY', ${timestamp} - CURRENT_TIMESTAMP) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'db2'\">SELECT ${customField} as CUSTOM_FIELD, (DAYS(${timestamp}) - DAYS(#{now})) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">SELECT ${customField} as CUSTOM_FIELD, DATEDIFF('DAY', #{now}, ${timestamp}) as AGE_IN_DAYS </if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">SELECT ${customField} as CUSTOM_FIELD, DATE_PART('DAY', ${timestamp} - #{now}) as AGE_IN_DAYS </if> "
|
||||
+ "FROM TASK "
|
||||
+ "<where>"
|
||||
+ "<if test=\"workbasketIds != null\">"
|
||||
|
@ -257,6 +262,7 @@ public interface MonitorMapper {
|
|||
@Result(column = "AGE_IN_DAYS", property = "ageInDays")
|
||||
@Result(column = "NUMBER_OF_TASKS", property = "numberOfTasks")
|
||||
List<MonitorQueryItem> getTaskCountOfTaskCustomFieldValues(
|
||||
@Param("now") Instant now,
|
||||
@Param("customField") TaskCustomField taskCustomField,
|
||||
@Param("workbasketIds") List<String> workbasketIds,
|
||||
@Param("states") List<TaskState> states,
|
||||
|
@ -312,22 +318,23 @@ public interface MonitorMapper {
|
|||
+ "</if>"
|
||||
+ "</if>"
|
||||
+ "<if test=\"_databaseId == 'db2'\">"
|
||||
+ "#{selectedItem.upperAgeLimit} >= (DAYS(${timestamp}) - DAYS(CURRENT_TIMESTAMP)) AND "
|
||||
+ "#{selectedItem.lowerAgeLimit} <= (DAYS(${timestamp}) - DAYS(CURRENT_TIMESTAMP)) "
|
||||
+ "#{selectedItem.upperAgeLimit} >= (DAYS(${timestamp}) - DAYS(#{now})) AND "
|
||||
+ "#{selectedItem.lowerAgeLimit} <= (DAYS(${timestamp}) - DAYS(#{now})) "
|
||||
+ "</if> "
|
||||
+ "<if test=\"_databaseId == 'h2'\">"
|
||||
+ "#{selectedItem.upperAgeLimit} >= DATEDIFF('DAY', CURRENT_TIMESTAMP, ${timestamp}) AND "
|
||||
+ "#{selectedItem.lowerAgeLimit} <= DATEDIFF('DAY', CURRENT_TIMESTAMP, ${timestamp}) "
|
||||
+ "#{selectedItem.upperAgeLimit} >= DATEDIFF('DAY', #{now}, ${timestamp}) AND "
|
||||
+ "#{selectedItem.lowerAgeLimit} <= DATEDIFF('DAY', #{now}, ${timestamp}) "
|
||||
+ "</if> "
|
||||
+ "<if test=\"_databaseId == 'postgres'\">"
|
||||
+ "#{selectedItem.upperAgeLimit} >= DATE_PART('day', ${timestamp} - CURRENT_TIMESTAMP ) AND "
|
||||
+ "#{selectedItem.lowerAgeLimit} <= DATE_PART('day', ${timestamp} - CURRENT_TIMESTAMP ) "
|
||||
+ "#{selectedItem.upperAgeLimit} >= DATE_PART('day', ${timestamp} - #{now} ) AND "
|
||||
+ "#{selectedItem.lowerAgeLimit} <= DATE_PART('day', ${timestamp} - #{now} ) "
|
||||
+ "</if> "
|
||||
+ "</foreach>) "
|
||||
+ "</where>"
|
||||
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
|
||||
+ "</script>")
|
||||
List<String> getTaskIdsForSelectedItems(
|
||||
@Param("now") Instant now,
|
||||
@Param("workbasketIds") List<String> workbasketIds,
|
||||
@Param("states") List<TaskState> states,
|
||||
@Param("classificationCategories") List<String> classificationCategories,
|
||||
|
@ -429,9 +436,9 @@ public interface MonitorMapper {
|
|||
// overhead / complexity. It's worth the trade-off of not computing the AGE_IN_DAYS column
|
||||
// twice.
|
||||
+ "SELECT W.ORG_LEVEL_1, W.ORG_LEVEL_2, W.ORG_LEVEL_3, W.ORG_LEVEL_4, "
|
||||
+ "<if test=\"_databaseId == 'db2'\">(DAYS(T.${status}) - DAYS(CURRENT_TIMESTAMP))</if>"
|
||||
+ "<if test=\"_databaseId == 'h2'\">DATEDIFF('DAY', CURRENT_TIMESTAMP, T.${status})</if>"
|
||||
+ "<if test=\"_databaseId == 'postgres'\">DATE_PART('DAY', T.${status} - CURRENT_TIMESTAMP)</if>"
|
||||
+ "<if test=\"_databaseId == 'db2'\">(DAYS(T.${status}) - DAYS(#{now}))</if>"
|
||||
+ "<if test=\"_databaseId == 'h2'\">DATEDIFF('DAY', #{now}, T.${status})</if>"
|
||||
+ "<if test=\"_databaseId == 'postgres'\">DATE_PART('DAY', T.${status} - #{now})</if>"
|
||||
+ " as AGE_IN_DAYS "
|
||||
+ "FROM TASK AS T INNER JOIN WORKBASKET AS W ON T.WORKBASKET_KEY=W.KEY "
|
||||
+ "<where>"
|
||||
|
@ -465,6 +472,7 @@ public interface MonitorMapper {
|
|||
@Result(column = "ORG_LEVEL_3", property = "orgLevel3")
|
||||
@Result(column = "ORG_LEVEL_4", property = "orgLevel4")
|
||||
List<TimestampQueryItem> getTasksCountForStatusGroupedByOrgLevel(
|
||||
@Param("now") Instant now,
|
||||
@Param("status") TaskTimestamp status,
|
||||
@Param("classificationCategories") List<String> classificationCategories,
|
||||
@Param("classificationIds") List<String> classificationIds,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pro.taskana.monitor.internal.reports;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -45,6 +46,7 @@ public class ClassificationCategoryReportBuilderImpl
|
|||
ClassificationCategoryReport report = new ClassificationCategoryReport(this.columnHeaders);
|
||||
List<MonitorQueryItem> monitorQueryItems =
|
||||
this.monitorMapper.getTaskCountOfCategories(
|
||||
Instant.now(),
|
||||
this.workbasketIds,
|
||||
this.states,
|
||||
this.classificationCategory,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pro.taskana.monitor.internal.reports;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -55,6 +56,7 @@ public class ClassificationReportBuilderImpl
|
|||
ClassificationReport report = new ClassificationReport(this.columnHeaders);
|
||||
List<MonitorQueryItem> monitorQueryItems =
|
||||
this.monitorMapper.getTaskCountOfClassifications(
|
||||
Instant.now(),
|
||||
this.workbasketIds,
|
||||
this.states,
|
||||
this.classificationCategory,
|
||||
|
@ -104,6 +106,7 @@ public class ClassificationReportBuilderImpl
|
|||
DetailedClassificationReport report = new DetailedClassificationReport(this.columnHeaders);
|
||||
List<DetailedMonitorQueryItem> detailedMonitorQueryItems =
|
||||
this.monitorMapper.getTaskCountOfDetailedClassifications(
|
||||
Instant.now(),
|
||||
this.workbasketIds,
|
||||
this.states,
|
||||
this.classificationCategory,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pro.taskana.monitor.internal.reports;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -51,6 +52,7 @@ public class TaskCustomFieldValueReportBuilderImpl
|
|||
TaskCustomFieldValueReport report = new TaskCustomFieldValueReport(this.columnHeaders);
|
||||
List<MonitorQueryItem> monitorQueryItems =
|
||||
this.monitorMapper.getTaskCountOfTaskCustomFieldValues(
|
||||
Instant.now(),
|
||||
this.taskCustomField,
|
||||
this.workbasketIds,
|
||||
this.states,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pro.taskana.monitor.internal.reports;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
@ -146,6 +147,7 @@ abstract class TimeIntervalReportBuilderImpl<
|
|||
selectedItems = convertWorkingDaysToDays(selectedItems, this.columnHeaders);
|
||||
}
|
||||
return this.monitorMapper.getTaskIdsForSelectedItems(
|
||||
Instant.now(),
|
||||
this.workbasketIds,
|
||||
this.states,
|
||||
this.classificationCategory,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pro.taskana.monitor.internal.reports;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
@ -99,6 +100,7 @@ public class TimestampReportBuilderImpl
|
|||
|
||||
private List<TimestampQueryItem> getTasksCountForStatusGroupedByOrgLevel(TaskTimestamp s) {
|
||||
return monitorMapper.getTasksCountForStatusGroupedByOrgLevel(
|
||||
Instant.now(),
|
||||
s,
|
||||
classificationCategory,
|
||||
classificationIds,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package pro.taskana.monitor.internal.reports;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -51,6 +52,7 @@ public class WorkbasketReportBuilderImpl
|
|||
WorkbasketReport report = new WorkbasketReport(this.columnHeaders);
|
||||
List<MonitorQueryItem> monitorQueryItems =
|
||||
this.monitorMapper.getTaskCountOfWorkbaskets(
|
||||
Instant.now(),
|
||||
this.workbasketIds,
|
||||
this.states,
|
||||
this.classificationCategory,
|
||||
|
|
|
@ -7,17 +7,26 @@ import static com.tngtech.archunit.library.GeneralCodingRules.NO_CLASSES_SHOULD_
|
|||
import static com.tngtech.archunit.library.dependencies.SlicesRuleDefinition.slices;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import com.tngtech.archunit.base.Optional;
|
||||
import com.tngtech.archunit.core.domain.JavaClass;
|
||||
import com.tngtech.archunit.core.domain.JavaClasses;
|
||||
import com.tngtech.archunit.core.domain.JavaMethod;
|
||||
import com.tngtech.archunit.core.importer.ClassFileImporter;
|
||||
import com.tngtech.archunit.lang.ArchCondition;
|
||||
import com.tngtech.archunit.lang.ArchRule;
|
||||
import com.tngtech.archunit.lang.ConditionEvents;
|
||||
import com.tngtech.archunit.lang.SimpleConditionEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.DynamicTest;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -109,22 +118,7 @@ class ArchitectureTest {
|
|||
)
|
||||
.map(Pattern::compile)
|
||||
.collect(Collectors.toList());
|
||||
ArchCondition<JavaClass> condition =
|
||||
new ArchCondition<JavaClass>("all be defined in TASKANA_SUB_PACKAGES") {
|
||||
@Override
|
||||
public void check(JavaClass item, ConditionEvents events) {
|
||||
if (TASKANA_SUB_PACKAGES.stream().noneMatch(p -> item.getPackageName().startsWith(p))
|
||||
&& excludePackages.stream()
|
||||
.noneMatch(p -> p.matcher(item.getPackageName()).matches())) {
|
||||
String message =
|
||||
String.format(
|
||||
"Package '%s' was not declared in TASKANA_SUB_PACKAGES",
|
||||
item.getPackageName());
|
||||
events.add(SimpleConditionEvent.violated(item, message));
|
||||
}
|
||||
}
|
||||
};
|
||||
ArchRule myRule = classes().should(condition);
|
||||
ArchRule myRule = classes().should(beDefinedInTaskanaSubPackages(excludePackages));
|
||||
myRule.check(importedClasses);
|
||||
}
|
||||
|
||||
|
@ -220,4 +214,83 @@ class ArchitectureTest {
|
|||
.because("we consistently want to use assertj in our tests");
|
||||
rule.check(importedClasses);
|
||||
}
|
||||
|
||||
@Test
|
||||
void mapperClassesShouldNotUseCurrentTimestampSqlFunction() {
|
||||
ArchRule rule =
|
||||
classes()
|
||||
.that()
|
||||
.haveSimpleNameEndingWith("Mapper")
|
||||
.should(notUseCurrentTimestampSqlFunction());
|
||||
|
||||
rule.check(importedClasses);
|
||||
}
|
||||
|
||||
private static ArchCondition<JavaClass> beDefinedInTaskanaSubPackages(
|
||||
List<Pattern> excludePackages) {
|
||||
return new ArchCondition<>("all be defined in TASKANA_SUB_PACKAGES") {
|
||||
@Override
|
||||
public void check(JavaClass javaClass, ConditionEvents events) {
|
||||
if (TASKANA_SUB_PACKAGES.stream().noneMatch(p -> javaClass.getPackageName().startsWith(p))
|
||||
&& excludePackages.stream()
|
||||
.noneMatch(p -> p.matcher(javaClass.getPackageName()).matches())) {
|
||||
String message =
|
||||
String.format(
|
||||
"Package '%s' was not declared in TASKANA_SUB_PACKAGES",
|
||||
javaClass.getPackageName());
|
||||
events.add(SimpleConditionEvent.violated(javaClass, message));
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private static ArchCondition<JavaClass> notUseCurrentTimestampSqlFunction() {
|
||||
Function<JavaMethod, List<String>> getSqlStringsFromMethod =
|
||||
(method) -> {
|
||||
List<String> values = new ArrayList<>();
|
||||
final Optional<Select> selectAnnotation = method.tryGetAnnotationOfType(Select.class);
|
||||
final Optional<Update> updateAnnotation = method.tryGetAnnotationOfType(Update.class);
|
||||
final Optional<Insert> insertAnnotation = method.tryGetAnnotationOfType(Insert.class);
|
||||
final Optional<Delete> deleteAnnotation = method.tryGetAnnotationOfType(Delete.class);
|
||||
|
||||
if (selectAnnotation.isPresent()) {
|
||||
values.addAll(Arrays.asList(selectAnnotation.get().value()));
|
||||
}
|
||||
if (updateAnnotation.isPresent()) {
|
||||
values.addAll(Arrays.asList(updateAnnotation.get().value()));
|
||||
}
|
||||
if (insertAnnotation.isPresent()) {
|
||||
values.addAll(Arrays.asList(insertAnnotation.get().value()));
|
||||
}
|
||||
if (deleteAnnotation.isPresent()) {
|
||||
values.addAll(Arrays.asList(deleteAnnotation.get().value()));
|
||||
}
|
||||
return values;
|
||||
};
|
||||
|
||||
return new ArchCondition<>("not use the SQL function 'CURRENT_TIMESTAMP'") {
|
||||
@Override
|
||||
public void check(JavaClass javaClass, ConditionEvents events) {
|
||||
for (JavaMethod method : javaClass.getAllMethods()) {
|
||||
List<String> sqlStrings = getSqlStringsFromMethod.apply(method);
|
||||
|
||||
if (sqlStrings.isEmpty()) {
|
||||
String message =
|
||||
String.format(
|
||||
"Method '%s#%s' does not contain any MyBatis SQL annotation",
|
||||
javaClass.getName(), method.getName());
|
||||
events.add(SimpleConditionEvent.violated(javaClass, message));
|
||||
}
|
||||
|
||||
if (sqlStrings.stream().anyMatch(s -> s.contains("CURRENT_TIMESTAMP"))) {
|
||||
String message =
|
||||
String.format(
|
||||
"Method '%s#%s' uses 'CURRENT_TIMESTAMP' SQL function",
|
||||
javaClass.getName(), method.getName());
|
||||
events.add(SimpleConditionEvent.violated(javaClass, message));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,14 +66,15 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfCategories(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
final ClassificationCategoryReport actualResult =
|
||||
|
@ -92,7 +93,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfCategories(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
.getTaskCountOfCategories(any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
|
@ -125,14 +126,15 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfCategories(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
final ClassificationCategoryReport actualResult =
|
||||
|
@ -152,7 +154,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfCategories(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
.getTaskCountOfCategories(any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
|
@ -183,18 +185,19 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
|
||||
List<String> expectedResult = List.of("TKI:000000000000000000000000000000000001");
|
||||
when(monitorMapperMock.getTaskIdsForSelectedItems(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter,
|
||||
null,
|
||||
"CLASSIFICATION_CATEGORY",
|
||||
TaskTimestamp.DUE,
|
||||
selectedItems,
|
||||
false))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter),
|
||||
eq(null),
|
||||
eq("CLASSIFICATION_CATEGORY"),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(selectedItems),
|
||||
eq(false)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
final List<String> actualResult =
|
||||
|
@ -224,6 +227,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
any(),
|
||||
any(),
|
||||
any(),
|
||||
any(),
|
||||
eq(TaskTimestamp.DUE),
|
||||
any(),
|
||||
eq(false));
|
||||
|
|
|
@ -80,14 +80,15 @@ class ClassificationReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfClassifications(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
ClassificationQuery queryMock = mock(ClassificationQuery.class);
|
||||
|
@ -114,7 +115,8 @@ class ClassificationReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
.getTaskCountOfClassifications(
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
|
||||
verifyNoMoreInteractions(queryMock);
|
||||
|
@ -147,14 +149,15 @@ class ClassificationReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfClassifications(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
ClassificationQuery queryMock = mock(ClassificationQuery.class);
|
||||
when(classificationService.createClassificationQuery()).thenReturn(queryMock);
|
||||
|
@ -181,7 +184,8 @@ class ClassificationReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
.getTaskCountOfClassifications(
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(queryMock);
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
@ -212,14 +216,15 @@ class ClassificationReportBuilderImplTest {
|
|||
detailedMonitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(detailedMonitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfDetailedClassifications(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
ClassificationQuery queryMock = mock(ClassificationQuery.class);
|
||||
when(classificationService.createClassificationQuery()).thenReturn(queryMock);
|
||||
|
@ -246,7 +251,7 @@ class ClassificationReportBuilderImplTest {
|
|||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfDetailedClassifications(
|
||||
any(), any(), any(), any(), any(), any(), any(), any());
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(queryMock);
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
@ -281,14 +286,15 @@ class ClassificationReportBuilderImplTest {
|
|||
detailedMonitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(detailedMonitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfDetailedClassifications(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
ClassificationQuery queryMock = mock(ClassificationQuery.class);
|
||||
when(classificationService.createClassificationQuery()).thenReturn(queryMock);
|
||||
|
@ -316,7 +322,7 @@ class ClassificationReportBuilderImplTest {
|
|||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfDetailedClassifications(
|
||||
any(), any(), any(), any(), any(), any(), any(), any());
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(queryMock);
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
@ -351,18 +357,19 @@ class ClassificationReportBuilderImplTest {
|
|||
|
||||
final List<String> expectedResult = List.of("TKI:000000000000000000000000000000000001");
|
||||
when(monitorMapperMock.getTaskIdsForSelectedItems(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter,
|
||||
null,
|
||||
"CLASSIFICATION_KEY",
|
||||
TaskTimestamp.DUE,
|
||||
selectedItems,
|
||||
false))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter),
|
||||
eq(null),
|
||||
eq("CLASSIFICATION_KEY"),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(selectedItems),
|
||||
eq(false)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
final List<String> actualResult =
|
||||
|
@ -393,6 +400,7 @@ class ClassificationReportBuilderImplTest {
|
|||
any(),
|
||||
any(),
|
||||
any(),
|
||||
any(),
|
||||
eq(TaskTimestamp.DUE),
|
||||
any(),
|
||||
eq(false));
|
||||
|
|
|
@ -2,6 +2,7 @@ package pro.taskana.monitor.internal;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
|
@ -64,15 +65,16 @@ class TaskCustomFieldValueReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfTaskCustomFieldValues(
|
||||
TaskCustomField.CUSTOM_1,
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
any(),
|
||||
eq(TaskCustomField.CUSTOM_1),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
final TaskCustomFieldValueReport actualResult =
|
||||
|
@ -92,7 +94,7 @@ class TaskCustomFieldValueReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfTaskCustomFieldValues(
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
|
@ -125,15 +127,16 @@ class TaskCustomFieldValueReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfTaskCustomFieldValues(
|
||||
TaskCustomField.CUSTOM_1,
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
any(),
|
||||
eq(TaskCustomField.CUSTOM_1),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
final TaskCustomFieldValueReport actualResult =
|
||||
|
@ -154,7 +157,7 @@ class TaskCustomFieldValueReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfTaskCustomFieldValues(
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
|
|
|
@ -73,15 +73,16 @@ class WorkbasketReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfWorkbaskets(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter,
|
||||
combinedClassificationFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter),
|
||||
eq(combinedClassificationFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
when(internalTaskanaEngineMock.runAsAdmin(any())).thenReturn(Map.of());
|
||||
|
||||
|
@ -102,7 +103,8 @@ class WorkbasketReportBuilderImplTest {
|
|||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfWorkbaskets(any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
.getTaskCountOfWorkbaskets(
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verify(internalTaskanaEngineMock).runAsAdmin(any());
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
|
@ -139,15 +141,16 @@ class WorkbasketReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfWorkbaskets(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.DUE,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter,
|
||||
combinedClassificationFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter),
|
||||
eq(combinedClassificationFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
when(internalTaskanaEngineMock.runAsAdmin(any())).thenReturn(Map.of());
|
||||
|
||||
|
@ -169,7 +172,8 @@ class WorkbasketReportBuilderImplTest {
|
|||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfWorkbaskets(any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
.getTaskCountOfWorkbaskets(
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
verifyNoMoreInteractions(internalTaskanaEngineMock, taskanaEngineMock, monitorMapperMock);
|
||||
|
@ -199,18 +203,19 @@ class WorkbasketReportBuilderImplTest {
|
|||
|
||||
List<String> expectedResult = List.of("TKI:000000000000000000000000000000000001");
|
||||
when(monitorMapperMock.getTaskIdsForSelectedItems(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter,
|
||||
null,
|
||||
"WORKBASKET_KEY",
|
||||
TaskTimestamp.DUE,
|
||||
selectedItems,
|
||||
false))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter),
|
||||
eq(null),
|
||||
eq("WORKBASKET_KEY"),
|
||||
eq(TaskTimestamp.DUE),
|
||||
eq(selectedItems),
|
||||
eq(false)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
final List<String> actualResult =
|
||||
|
@ -240,6 +245,7 @@ class WorkbasketReportBuilderImplTest {
|
|||
any(),
|
||||
any(),
|
||||
any(),
|
||||
any(),
|
||||
eq(TaskTimestamp.DUE),
|
||||
any(),
|
||||
eq(false));
|
||||
|
@ -349,15 +355,16 @@ class WorkbasketReportBuilderImplTest {
|
|||
monitorQueryItem.setNumberOfTasks(1);
|
||||
expectedResult.add(monitorQueryItem);
|
||||
when(monitorMapperMock.getTaskCountOfWorkbaskets(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.PLANNED,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter,
|
||||
combinedClassificationFilter))
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.PLANNED),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter),
|
||||
eq(combinedClassificationFilter)))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
when(internalTaskanaEngineMock.runAsAdmin(any())).thenReturn(Map.of());
|
||||
|
@ -380,15 +387,16 @@ class WorkbasketReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfWorkbaskets(
|
||||
workbasketIds,
|
||||
states,
|
||||
categories,
|
||||
domains,
|
||||
TaskTimestamp.PLANNED,
|
||||
classificationIds,
|
||||
excludedClassificationIds,
|
||||
customAttributeFilter,
|
||||
combinedClassificationFilter);
|
||||
any(),
|
||||
eq(workbasketIds),
|
||||
eq(states),
|
||||
eq(categories),
|
||||
eq(domains),
|
||||
eq(TaskTimestamp.PLANNED),
|
||||
eq(classificationIds),
|
||||
eq(excludedClassificationIds),
|
||||
eq(customAttributeFilter),
|
||||
eq(combinedClassificationFilter));
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
verifyNoMoreInteractions(internalTaskanaEngineMock, taskanaEngineMock, monitorMapperMock);
|
||||
|
|
Loading…
Reference in New Issue