From 0a5ec9e7017562f0b2b91246d1f142814c75e905 Mon Sep 17 00:00:00 2001
From: Mustapha Zorgati <15628173+mustaphazorgati@users.noreply.github.com>
Date: Tue, 15 Sep 2020 11:47:41 +0200
Subject: [PATCH] TSK-1378: now support combinedClassificationfilter in
WorkbasketReport#listCustomAttributeValuesForCustomAttributeName
---
.../monitor/internal/MonitorMapper.java | 29 ++++++++++++++-----
.../TimeIntervalReportBuilderImpl.java | 1 +
.../ProvideWorkbasketReportAccTest.java | 23 +++++++++++++++
...ficationCategoryReportBuilderImplTest.java | 4 ++-
.../ClassificationReportBuilderImplTest.java | 4 ++-
...CustomFieldValueReportBuilderImplTest.java | 4 ++-
.../WorkbasketReportBuilderImplTest.java | 4 ++-
7 files changed, 57 insertions(+), 12 deletions(-)
diff --git a/lib/taskana-core/src/main/java/pro/taskana/monitor/internal/MonitorMapper.java b/lib/taskana-core/src/main/java/pro/taskana/monitor/internal/MonitorMapper.java
index e51588a23..c2e3c5fb0 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/monitor/internal/MonitorMapper.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/monitor/internal/MonitorMapper.java
@@ -381,28 +381,39 @@ public interface MonitorMapper {
@Select(
"")
@@ -414,6 +425,8 @@ public interface MonitorMapper {
@Param("classificationIds") List classificationIds,
@Param("excludedClassificationIds") List excludedClassificationIds,
@Param("customAttributeFilter") Map customAttributeFilter,
+ @Param("combinedClassificationFilter")
+ List combinedClassificationFilter,
@Param("customField") TaskCustomField taskCustomField);
@Select(
diff --git a/lib/taskana-core/src/main/java/pro/taskana/monitor/internal/reports/TimeIntervalReportBuilderImpl.java b/lib/taskana-core/src/main/java/pro/taskana/monitor/internal/reports/TimeIntervalReportBuilderImpl.java
index ca2b0e57e..8cb77b321 100644
--- a/lib/taskana-core/src/main/java/pro/taskana/monitor/internal/reports/TimeIntervalReportBuilderImpl.java
+++ b/lib/taskana-core/src/main/java/pro/taskana/monitor/internal/reports/TimeIntervalReportBuilderImpl.java
@@ -182,6 +182,7 @@ abstract class TimeIntervalReportBuilderImpl<
this.classificationIds,
this.excludedClassificationIds,
this.customAttributeFilter,
+ getCombinedClassificationFilter(),
taskCustomField);
} finally {
this.taskanaEngine.returnConnection();
diff --git a/lib/taskana-core/src/test/java/acceptance/report/ProvideWorkbasketReportAccTest.java b/lib/taskana-core/src/test/java/acceptance/report/ProvideWorkbasketReportAccTest.java
index 1689f127e..9a8cc679f 100644
--- a/lib/taskana-core/src/test/java/acceptance/report/ProvideWorkbasketReportAccTest.java
+++ b/lib/taskana-core/src/test/java/acceptance/report/ProvideWorkbasketReportAccTest.java
@@ -393,6 +393,29 @@ class ProvideWorkbasketReportAccTest extends AbstractReportAccTest {
assertThat(report.getSumRow().getTotalValue()).isEqualTo(50);
}
+ @WithAccessId(user = "monitor")
+ @Test
+ void should_ReturnCustomFieldValues_When_CombinedClassificationFilterIsApplied()
+ throws Exception {
+ List columnHeaders = getListOfColumnHeaders();
+ List combinedClassificationFilters =
+ Collections.singletonList(
+ new CombinedClassificationFilter(
+ "CLI:000000000000000000000000000000000001",
+ "CLI:000000000000000000000000000000000006"));
+
+ List customValues =
+ MONITOR_SERVICE
+ .createWorkbasketReportBuilder()
+ .withColumnHeaders(columnHeaders)
+ .combinedClassificationFilterIn(combinedClassificationFilters)
+ .listCustomAttributeValuesForCustomAttributeName(TaskCustomField.CUSTOM_1);
+
+ assertThat(customValues)
+ .containsExactlyInAnyOrder(
+ "Geschaeftsstelle A", "Geschaeftsstelle B", "Geschaeftsstelle C");
+ }
+
private List getListOfColumnHeaders() {
List columnHeaders = new ArrayList<>();
columnHeaders.add(new TimeIntervalColumnHeader(Integer.MIN_VALUE, -11));
diff --git a/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/ClassificationClassificationCategoryReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/ClassificationClassificationCategoryReportBuilderImplTest.java
index 4724e4305..71bfda339 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/ClassificationClassificationCategoryReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/ClassificationClassificationCategoryReportBuilderImplTest.java
@@ -276,6 +276,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
classificationIds,
excludedClassificationIds,
customAttributeFilter,
+ null,
TaskCustomField.CUSTOM_1))
.thenReturn(expectedResult);
@@ -296,7 +297,8 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
verify(monitorMapperMock)
- .getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
+ .getCustomAttributeValuesForReport(
+ any(), any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
diff --git a/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/ClassificationReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/ClassificationReportBuilderImplTest.java
index daa6511d7..971144414 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/ClassificationReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/ClassificationReportBuilderImplTest.java
@@ -446,6 +446,7 @@ class ClassificationReportBuilderImplTest {
classificationIds,
excludedClassificationIds,
customAttributeFilter,
+ null,
TaskCustomField.CUSTOM_1))
.thenReturn(expectedResult);
@@ -467,7 +468,8 @@ class ClassificationReportBuilderImplTest {
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(monitorMapperMock)
- .getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
+ .getCustomAttributeValuesForReport(
+ any(), any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock).returnConnection();
verify(taskanaEngineMock).getClassificationService();
verifyNoMoreInteractions(mocks);
diff --git a/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/TaskCustomFieldValueReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/TaskCustomFieldValueReportBuilderImplTest.java
index 7b87fff52..7075a906c 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/TaskCustomFieldValueReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/TaskCustomFieldValueReportBuilderImplTest.java
@@ -195,6 +195,7 @@ class TaskCustomFieldValueReportBuilderImplTest {
classificationIds,
excludedClassificationIds,
customAttributeFilter,
+ null,
TaskCustomField.CUSTOM_1))
.thenReturn(expectedResult);
@@ -215,7 +216,8 @@ class TaskCustomFieldValueReportBuilderImplTest {
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(monitorMapperMock)
- .getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
+ .getCustomAttributeValuesForReport(
+ any(), any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
diff --git a/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/WorkbasketReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/WorkbasketReportBuilderImplTest.java
index 1914c62a5..058690761 100644
--- a/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/WorkbasketReportBuilderImplTest.java
+++ b/lib/taskana-core/src/test/java/pro/taskana/monitor/internal/WorkbasketReportBuilderImplTest.java
@@ -295,6 +295,7 @@ class WorkbasketReportBuilderImplTest {
classificationIds,
excludedClassificationIds,
customAttributeFilter,
+ null,
TaskCustomField.CUSTOM_1))
.thenReturn(expectedResult);
@@ -315,7 +316,8 @@ class WorkbasketReportBuilderImplTest {
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(monitorMapperMock)
- .getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
+ .getCustomAttributeValuesForReport(
+ any(), any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock).returnConnection();
verify(taskanaEngineMock).getWorkbasketService();
verifyNoMoreInteractions(internalTaskanaEngineMock, taskanaEngineMock, monitorMapperMock);