TSK-1344: introduced displayName for Row
This commit is contained in:
parent
278d17ecfe
commit
f5e3d449b6
|
@ -26,7 +26,7 @@ public interface MonitorService {
|
|||
*
|
||||
* @return a {@link ClassificationCategoryReport.Builder}
|
||||
*/
|
||||
ClassificationCategoryReport.Builder createCategoryReportBuilder();
|
||||
ClassificationCategoryReport.Builder createClassificationCategoryReportBuilder();
|
||||
|
||||
/**
|
||||
* Provides a {@link ClassificationReport.Builder} for creating a {@link ClassificationReport} or
|
||||
|
|
|
@ -19,7 +19,7 @@ import pro.taskana.monitor.api.reports.row.Row;
|
|||
public class ClassificationReport extends Report<MonitorQueryItem, TimeIntervalColumnHeader> {
|
||||
|
||||
public ClassificationReport(List<TimeIntervalColumnHeader> timeIntervalColumnHeaders) {
|
||||
super(timeIntervalColumnHeaders, new String[] {"CLASSIFICATION KEYS"});
|
||||
super(timeIntervalColumnHeaders, new String[] {"CLASSIFICATION"});
|
||||
}
|
||||
|
||||
/** Builder for {@link ClassificationReport}. */
|
||||
|
@ -62,7 +62,7 @@ public class ClassificationReport extends Report<MonitorQueryItem, TimeIntervalC
|
|||
List<TimeIntervalColumnHeader> workbasketLevelReportColumnHeaders) {
|
||||
super(
|
||||
workbasketLevelReportColumnHeaders,
|
||||
new String[] {"TASK CLASSIFICATION KEYS", "ATTACHMENT"});
|
||||
new String[] {"TASK CLASSIFICATION", "ATTACHMENT"});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -99,6 +99,11 @@ public abstract class Report<I extends QueryItem, H extends ColumnHeader<? super
|
|||
items.forEach(this::addItem);
|
||||
}
|
||||
|
||||
public final void augmentDisplayNames(Map<String, String> displayMap) {
|
||||
reportRows.values().forEach(row -> row.setDisplayName(displayMap));
|
||||
sumRow.setDisplayName(displayMap);
|
||||
}
|
||||
|
||||
protected Row<I> createRow(String key, int columnSize) {
|
||||
return new SingleRow<>(key, columnSize);
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
|
|||
public class WorkbasketReport extends Report<MonitorQueryItem, TimeIntervalColumnHeader> {
|
||||
|
||||
public WorkbasketReport(List<TimeIntervalColumnHeader> timeIntervalColumnHeaders) {
|
||||
super(timeIntervalColumnHeaders, new String[] {"WORKBASKET KEYS"});
|
||||
super(timeIntervalColumnHeaders, new String[] {"WORKBASKET"});
|
||||
}
|
||||
|
||||
/** Builder for {@link WorkbasketReport}. */
|
||||
|
|
|
@ -13,7 +13,7 @@ public class DetailedClassificationRow extends FoldableRow<DetailedMonitorQueryI
|
|||
super(
|
||||
key,
|
||||
columnSize,
|
||||
(item) -> item.getAttachmentKey() != null ? item.getAttachmentKey() : "N/A");
|
||||
item -> item.getAttachmentKey() != null ? item.getAttachmentKey() : "N/A");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -52,10 +52,20 @@ public abstract class FoldableRow<I extends QueryItem> extends SingleRow<I> {
|
|||
.updateTotalValue(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisplayName(Map<String, String> displayMap) {
|
||||
super.setDisplayName(displayMap);
|
||||
foldableRows.values().forEach(row -> row.setDisplayName(displayMap));
|
||||
}
|
||||
|
||||
public Row<I> getFoldableRow(String key) {
|
||||
return foldableRows.get(key);
|
||||
}
|
||||
|
||||
public Map<String, Row<I>> getFoldableRows() {
|
||||
return foldableRows;
|
||||
}
|
||||
|
||||
protected abstract Row<I> buildRow(String key, int columnSize);
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package pro.taskana.monitor.api.reports.row;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import pro.taskana.monitor.api.reports.Report;
|
||||
import pro.taskana.monitor.api.reports.header.ColumnHeader;
|
||||
import pro.taskana.monitor.api.reports.item.QueryItem;
|
||||
|
@ -30,6 +32,10 @@ public interface Row<I extends QueryItem> {
|
|||
|
||||
String getKey();
|
||||
|
||||
String getDisplayName();
|
||||
|
||||
void setDisplayName(Map<String, String> displayMap);
|
||||
|
||||
int getTotalValue();
|
||||
|
||||
int[] getCells();
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package pro.taskana.monitor.api.reports.row;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import pro.taskana.monitor.api.reports.Report;
|
||||
import pro.taskana.monitor.api.reports.header.ColumnHeader;
|
||||
import pro.taskana.monitor.api.reports.item.QueryItem;
|
||||
|
@ -13,11 +15,13 @@ import pro.taskana.monitor.api.reports.item.QueryItem;
|
|||
public class SingleRow<I extends QueryItem> implements Row<I> {
|
||||
|
||||
private final int[] cells;
|
||||
private int total = 0;
|
||||
private final String key;
|
||||
private int total = 0;
|
||||
private String displayName;
|
||||
|
||||
public SingleRow(String key, int columnCount) {
|
||||
this.key = key;
|
||||
this.displayName = key;
|
||||
cells = new int[columnCount];
|
||||
}
|
||||
|
||||
|
@ -37,6 +41,16 @@ public class SingleRow<I extends QueryItem> implements Row<I> {
|
|||
return key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return displayName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisplayName(Map<String, String> displayMap) {
|
||||
displayName = displayMap.getOrDefault(key, key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int getTotalValue() {
|
||||
return total;
|
||||
|
|
|
@ -19,8 +19,8 @@ import pro.taskana.task.api.CustomField;
|
|||
/** This is the implementation of MonitorService. */
|
||||
public class MonitorServiceImpl implements MonitorService {
|
||||
|
||||
private InternalTaskanaEngine taskanaEngine;
|
||||
private MonitorMapper monitorMapper;
|
||||
private final InternalTaskanaEngine taskanaEngine;
|
||||
private final MonitorMapper monitorMapper;
|
||||
|
||||
public MonitorServiceImpl(InternalTaskanaEngine taskanaEngine, MonitorMapper monitorMapper) {
|
||||
super();
|
||||
|
@ -34,7 +34,7 @@ public class MonitorServiceImpl implements MonitorService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ClassificationCategoryReport.Builder createCategoryReportBuilder() {
|
||||
public ClassificationCategoryReport.Builder createClassificationCategoryReportBuilder() {
|
||||
return new ClassificationCategoryReportBuilderImpl(taskanaEngine, monitorMapper);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
package pro.taskana.monitor.internal.reports;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.classification.api.models.ClassificationSummary;
|
||||
import pro.taskana.common.api.TaskanaRole;
|
||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
|
@ -15,6 +20,7 @@ import pro.taskana.monitor.api.reports.ClassificationReport.DetailedClassificati
|
|||
import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.monitor.api.reports.item.DetailedMonitorQueryItem;
|
||||
import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
|
||||
import pro.taskana.monitor.api.reports.row.Row;
|
||||
import pro.taskana.monitor.internal.MonitorMapper;
|
||||
import pro.taskana.monitor.internal.preprocessor.DaysToWorkingDaysReportPreProcessor;
|
||||
|
||||
|
@ -25,10 +31,12 @@ public class ClassificationReportBuilderImpl
|
|||
|
||||
private static final Logger LOGGER =
|
||||
LoggerFactory.getLogger(ClassificationReportBuilderImpl.class);
|
||||
private final ClassificationService classificationService;
|
||||
|
||||
public ClassificationReportBuilderImpl(
|
||||
InternalTaskanaEngine taskanaEngine, MonitorMapper monitorMapper) {
|
||||
super(taskanaEngine, monitorMapper);
|
||||
classificationService = taskanaEngine.getEngine().getClassificationService();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -59,6 +67,17 @@ public class ClassificationReportBuilderImpl
|
|||
monitorQueryItems,
|
||||
new DaysToWorkingDaysReportPreProcessor<>(
|
||||
this.columnHeaders, converter, this.inWorkingDays));
|
||||
Map<String, String> displayMap =
|
||||
classificationService
|
||||
.createClassificationQuery()
|
||||
.keyIn(report.getRows().keySet().toArray(new String[0]))
|
||||
.domainIn(domains != null ? domains.toArray(new String[0]) : null)
|
||||
.list()
|
||||
.stream()
|
||||
.collect(
|
||||
Collectors.toMap(
|
||||
ClassificationSummary::getKey, ClassificationSummary::getName, (a, b) -> a));
|
||||
report.augmentDisplayNames(displayMap);
|
||||
return report;
|
||||
} finally {
|
||||
this.taskanaEngine.returnConnection();
|
||||
|
@ -95,7 +114,24 @@ public class ClassificationReportBuilderImpl
|
|||
detailedMonitorQueryItems,
|
||||
new DaysToWorkingDaysReportPreProcessor<>(
|
||||
this.columnHeaders, converter, this.inWorkingDays));
|
||||
|
||||
Stream<String> attachmentKeys =
|
||||
report.getRows().keySet().stream()
|
||||
.map(report::getRow)
|
||||
.flatMap(row -> row.getFoldableRows().values().stream())
|
||||
.map(Row::getKey);
|
||||
Map<String, String> displayMap =
|
||||
classificationService
|
||||
.createClassificationQuery()
|
||||
.keyIn(
|
||||
Stream.concat(attachmentKeys, report.getRows().keySet().stream())
|
||||
.toArray(String[]::new))
|
||||
.domainIn(domains != null ? domains.toArray(new String[0]) : null)
|
||||
.list()
|
||||
.stream()
|
||||
.collect(
|
||||
Collectors.toMap(
|
||||
ClassificationSummary::getKey, ClassificationSummary::getName, (a, b) -> a));
|
||||
report.augmentDisplayNames(displayMap);
|
||||
return report;
|
||||
} finally {
|
||||
this.taskanaEngine.returnConnection();
|
||||
|
|
|
@ -16,8 +16,8 @@ import pro.taskana.task.api.TaskState;
|
|||
public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(TaskStatusReportBuilderImpl.class);
|
||||
private InternalTaskanaEngine taskanaEngine;
|
||||
private MonitorMapper monitorMapper;
|
||||
private final InternalTaskanaEngine taskanaEngine;
|
||||
private final MonitorMapper monitorMapper;
|
||||
private List<String> domains;
|
||||
private List<TaskState> states;
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package pro.taskana.monitor.internal.reports;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -16,6 +18,8 @@ import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
|
|||
import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
|
||||
import pro.taskana.monitor.internal.MonitorMapper;
|
||||
import pro.taskana.monitor.internal.preprocessor.DaysToWorkingDaysReportPreProcessor;
|
||||
import pro.taskana.workbasket.api.WorkbasketService;
|
||||
import pro.taskana.workbasket.api.models.WorkbasketSummary;
|
||||
|
||||
/** The implementation of WorkbasketReportBuilder. */
|
||||
public class WorkbasketReportBuilderImpl
|
||||
|
@ -23,11 +27,13 @@ public class WorkbasketReportBuilderImpl
|
|||
implements WorkbasketReport.Builder {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketReportBuilderImpl.class);
|
||||
private final WorkbasketService workbasketService;
|
||||
private List<CombinedClassificationFilter> combinedClassificationFilter;
|
||||
|
||||
public WorkbasketReportBuilderImpl(
|
||||
InternalTaskanaEngine taskanaEngine, MonitorMapper monitorMapper) {
|
||||
super(taskanaEngine, monitorMapper);
|
||||
workbasketService = taskanaEngine.getEngine().getWorkbasketService();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -58,6 +64,20 @@ public class WorkbasketReportBuilderImpl
|
|||
monitorQueryItems,
|
||||
new DaysToWorkingDaysReportPreProcessor<>(
|
||||
this.columnHeaders, converter, this.inWorkingDays));
|
||||
|
||||
Map<String, String> displayMap =
|
||||
taskanaEngine.runAsAdmin(
|
||||
() ->
|
||||
workbasketService
|
||||
.createWorkbasketQuery()
|
||||
.keyIn(report.getRows().keySet().toArray(new String[0]))
|
||||
.domainIn(domains != null ? domains.toArray(new String[0]) : null)
|
||||
.list()
|
||||
.stream()
|
||||
.collect(
|
||||
Collectors.toMap(
|
||||
WorkbasketSummary::getKey, WorkbasketSummary::getName, (a, b) -> a)));
|
||||
report.augmentDisplayNames(displayMap);
|
||||
return report;
|
||||
} finally {
|
||||
this.taskanaEngine.returnConnection();
|
||||
|
|
|
@ -72,7 +72,7 @@ class GetCustomAttributeValuesForReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
List<String> values =
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.customAttributeFilterIn(customAttributeFilter)
|
||||
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_16);
|
||||
|
||||
|
@ -88,7 +88,7 @@ class GetCustomAttributeValuesForReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
List<String> values =
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.domainIn(domains)
|
||||
.excludedClassificationIdIn(
|
||||
Collections.singletonList("CLI:000000000000000000000000000000000003"))
|
||||
|
|
|
@ -34,7 +34,9 @@ class GetTaskIdsOfClassificationCategoryReportAccTest extends AbstractReportAccT
|
|||
List<SelectedItem> selectedItems = new ArrayList<>();
|
||||
ThrowingCallable call =
|
||||
() -> {
|
||||
monitorService.createCategoryReportBuilder().listTaskIdsForSelectedItems(selectedItems);
|
||||
monitorService
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.listTaskIdsForSelectedItems(selectedItems);
|
||||
};
|
||||
assertThatThrownBy(call).isInstanceOf(NotAuthorizedException.class);
|
||||
}
|
||||
|
@ -68,7 +70,7 @@ class GetTaskIdsOfClassificationCategoryReportAccTest extends AbstractReportAccT
|
|||
|
||||
List<String> ids =
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.listTaskIdsForSelectedItems(selectedItems);
|
||||
|
@ -119,7 +121,7 @@ class GetTaskIdsOfClassificationCategoryReportAccTest extends AbstractReportAccT
|
|||
|
||||
List<String> ids =
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.workbasketIdIn(workbasketIds)
|
||||
|
@ -163,7 +165,7 @@ class GetTaskIdsOfClassificationCategoryReportAccTest extends AbstractReportAccT
|
|||
|
||||
List<String> ids =
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.stateIn(states)
|
||||
|
@ -208,7 +210,7 @@ class GetTaskIdsOfClassificationCategoryReportAccTest extends AbstractReportAccT
|
|||
|
||||
List<String> ids =
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.classificationCategoryIn(categories)
|
||||
|
@ -251,7 +253,7 @@ class GetTaskIdsOfClassificationCategoryReportAccTest extends AbstractReportAccT
|
|||
|
||||
List<String> ids =
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.domainIn(domains)
|
||||
|
@ -296,7 +298,7 @@ class GetTaskIdsOfClassificationCategoryReportAccTest extends AbstractReportAccT
|
|||
|
||||
List<String> ids =
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.customAttributeFilterIn(customAttributeFilter)
|
||||
|
@ -330,7 +332,7 @@ class GetTaskIdsOfClassificationCategoryReportAccTest extends AbstractReportAccT
|
|||
ThrowingCallable call =
|
||||
() -> {
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.listTaskIdsForSelectedItems(selectedItems);
|
||||
};
|
||||
|
|
|
@ -324,7 +324,7 @@ class GetTaskIdsOfCustomFieldValueReportAccTest extends AbstractReportAccTest {
|
|||
ThrowingCallable call =
|
||||
() -> {
|
||||
monitorService
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.listTaskIdsForSelectedItems(selectedItems);
|
||||
};
|
||||
|
|
|
@ -37,15 +37,28 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
@Test
|
||||
void testRoleCheck() {
|
||||
assertThatThrownBy(() -> MONITOR_SERVICE.createCategoryReportBuilder().buildReport())
|
||||
.isInstanceOf(NotAuthorizedException.class);
|
||||
ThrowingCallable call =
|
||||
() -> MONITOR_SERVICE.createClassificationCategoryReportBuilder().buildReport();
|
||||
assertThatThrownBy(call).isInstanceOf(NotAuthorizedException.class);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void should_augmentDisplayNames_When_ReportIsBuild() throws Exception {
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE.createClassificationCategoryReportBuilder().buildReport();
|
||||
|
||||
assertThat(report.getRows()).hasSize(3);
|
||||
assertThat(report.getRow("AUTOMATIC").getDisplayName()).isEqualTo("AUTOMATIC");
|
||||
assertThat(report.getRow("EXTERN").getDisplayName()).isEqualTo("EXTERN");
|
||||
assertThat(report.getRow("MANUAL").getDisplayName()).isEqualTo("MANUAL");
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void testGetTotalNumbersOfTasksOfCategoryReport() throws Exception {
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE.createCategoryReportBuilder().buildReport();
|
||||
MONITOR_SERVICE.createClassificationCategoryReportBuilder().buildReport();
|
||||
|
||||
assertThat(report).isNotNull();
|
||||
assertThat(report.rowSize()).isEqualTo(3);
|
||||
|
@ -66,7 +79,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.buildReport();
|
||||
|
@ -90,7 +103,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.buildReport();
|
||||
|
@ -115,7 +128,10 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
ThrowingConsumer<TaskTimestamp> test =
|
||||
timestamp -> {
|
||||
ThrowingCallable callable =
|
||||
() -> MONITOR_SERVICE.createCategoryReportBuilder().buildReport(timestamp);
|
||||
() ->
|
||||
MONITOR_SERVICE
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.buildReport(timestamp);
|
||||
assertThatCode(callable).doesNotThrowAnyException();
|
||||
};
|
||||
return DynamicTest.stream(iterator, t -> "for TaskState " + t, test);
|
||||
|
@ -128,7 +144,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.buildReport(TaskTimestamp.PLANNED);
|
||||
|
@ -153,7 +169,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.buildReport();
|
||||
|
||||
|
@ -179,7 +195,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.inWorkingDays()
|
||||
.workbasketIdIn(workbasketIds)
|
||||
|
@ -206,7 +222,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.stateIn(states)
|
||||
.inWorkingDays()
|
||||
|
@ -233,7 +249,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.classificationCategoryIn(categories)
|
||||
.inWorkingDays()
|
||||
|
@ -257,7 +273,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.domainIn(domains)
|
||||
.inWorkingDays()
|
||||
|
@ -285,7 +301,7 @@ class ProvideClassificationCategoryReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
ClassificationCategoryReport report =
|
||||
MONITOR_SERVICE
|
||||
.createCategoryReportBuilder()
|
||||
.createClassificationCategoryReportBuilder()
|
||||
.withColumnHeaders(columnHeaders)
|
||||
.customAttributeFilterIn(customAttributeFilter)
|
||||
.inWorkingDays()
|
||||
|
|
|
@ -41,6 +41,19 @@ class ProvideClassificationReportAccTest extends AbstractReportAccTest {
|
|||
.isInstanceOf(NotAuthorizedException.class);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void should_augmentDisplayNames_When_ReportIsBuild() throws Exception {
|
||||
ClassificationReport report = MONITOR_SERVICE.createClassificationReportBuilder().buildReport();
|
||||
|
||||
assertThat(report.getRows()).hasSize(5);
|
||||
assertThat(report.getRow("L10000").getDisplayName()).isEqualTo("OLD-Leistungsfall");
|
||||
assertThat(report.getRow("L20000").getDisplayName()).isEqualTo("Beratungsprotokoll");
|
||||
assertThat(report.getRow("L30000").getDisplayName()).isEqualTo("Widerruf");
|
||||
assertThat(report.getRow("L40000").getDisplayName()).isEqualTo("Dynamikaenderung");
|
||||
assertThat(report.getRow("L50000").getDisplayName()).isEqualTo("Dynamik-Ablehnung");
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void testGetTotalNumbersOfTasksOfClassificationReport() throws Exception {
|
||||
|
|
|
@ -44,6 +44,21 @@ class ProvideCustomFieldValueReportAccTest extends AbstractReportAccTest {
|
|||
assertThatThrownBy(call).isInstanceOf(NotAuthorizedException.class);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void should_augmentDisplayNames_When_ReportIsBuild() throws Exception {
|
||||
CustomFieldValueReport report =
|
||||
MONITOR_SERVICE.createCustomFieldValueReportBuilder(CustomField.CUSTOM_1).buildReport();
|
||||
|
||||
assertThat(report.getRows()).hasSize(3);
|
||||
assertThat(report.getRow("Geschaeftsstelle A").getDisplayName())
|
||||
.isEqualTo("Geschaeftsstelle A");
|
||||
assertThat(report.getRow("Geschaeftsstelle B").getDisplayName())
|
||||
.isEqualTo("Geschaeftsstelle B");
|
||||
assertThat(report.getRow("Geschaeftsstelle C").getDisplayName())
|
||||
.isEqualTo("Geschaeftsstelle C");
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void testGetTotalNumbersOfTasksOfCustomFieldValueReportForCustom1() throws Exception {
|
||||
|
|
|
@ -27,6 +27,7 @@ import pro.taskana.monitor.api.TaskTimestamp;
|
|||
import pro.taskana.monitor.api.reports.ClassificationReport.DetailedClassificationReport;
|
||||
import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
|
||||
import pro.taskana.monitor.api.reports.item.DetailedMonitorQueryItem;
|
||||
import pro.taskana.monitor.api.reports.row.DetailedClassificationRow;
|
||||
import pro.taskana.monitor.api.reports.row.FoldableRow;
|
||||
import pro.taskana.monitor.api.reports.row.Row;
|
||||
import pro.taskana.task.api.CustomField;
|
||||
|
@ -45,6 +46,44 @@ class ProvideDetailedClassificationReportAccTest extends AbstractReportAccTest {
|
|||
assertThatThrownBy(call).isInstanceOf(NotAuthorizedException.class);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void should_augmentDisplayNames_When_ReportIsBuild() throws Exception {
|
||||
DetailedClassificationReport report =
|
||||
MONITOR_SERVICE.createClassificationReportBuilder().buildDetailedReport();
|
||||
|
||||
assertThat(report.getRows()).hasSize(5);
|
||||
|
||||
DetailedClassificationRow row = report.getRow("L10000");
|
||||
assertThat(row.getDisplayName()).isEqualTo("OLD-Leistungsfall");
|
||||
assertThat(row.getFoldableRowCount()).isEqualTo(2);
|
||||
assertThat(row.getFoldableRow("L11000").getDisplayName()).isEqualTo("Anhang 1");
|
||||
assertThat(row.getFoldableRow("N/A").getDisplayName()).isEqualTo("N/A");
|
||||
|
||||
row = report.getRow("L20000");
|
||||
assertThat(row.getDisplayName()).isEqualTo("Beratungsprotokoll");
|
||||
assertThat(row.getFoldableRowCount()).isEqualTo(2);
|
||||
assertThat(row.getFoldableRow("L22000").getDisplayName()).isEqualTo("Anhang 2");
|
||||
assertThat(row.getFoldableRow("N/A").getDisplayName()).isEqualTo("N/A");
|
||||
|
||||
row = report.getRow("L30000");
|
||||
assertThat(row.getDisplayName()).isEqualTo("Widerruf");
|
||||
assertThat(row.getFoldableRowCount()).isEqualTo(3);
|
||||
assertThat(row.getFoldableRow("L33000").getDisplayName()).isEqualTo("Anhang 3");
|
||||
assertThat(row.getFoldableRow("L99000").getDisplayName()).isEqualTo("Anhang 9");
|
||||
assertThat(row.getFoldableRow("N/A").getDisplayName()).isEqualTo("N/A");
|
||||
|
||||
row = report.getRow("L40000");
|
||||
assertThat(row.getDisplayName()).isEqualTo("Dynamikaenderung");
|
||||
assertThat(row.getFoldableRowCount()).isOne();
|
||||
assertThat(row.getFoldableRow("N/A").getDisplayName()).isEqualTo("N/A");
|
||||
|
||||
row = report.getRow("L50000");
|
||||
assertThat(row.getDisplayName()).isEqualTo("Dynamik-Ablehnung");
|
||||
assertThat(row.getFoldableRowCount()).isOne();
|
||||
assertThat(row.getFoldableRow("N/A").getDisplayName()).isEqualTo("N/A");
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void testGetTotalNumbersOfTasksOfDetailedClassificationReport() throws Exception {
|
||||
|
|
|
@ -26,7 +26,7 @@ import pro.taskana.task.api.TaskState;
|
|||
@ExtendWith(JaasExtension.class)
|
||||
class ProvideTaskStatusReportAccTest extends AbstractReportAccTest {
|
||||
|
||||
MonitorService monitorService = taskanaEngine.getMonitorService();
|
||||
private static final MonitorService MONITOR_SERVICE = taskanaEngine.getMonitorService();
|
||||
|
||||
@BeforeEach
|
||||
void reset() throws Exception {
|
||||
|
@ -35,7 +35,7 @@ class ProvideTaskStatusReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
@Test
|
||||
void should_ThrowException_IfUserIsNotAuthorized() {
|
||||
assertThatThrownBy(() -> monitorService.createTaskStatusReportBuilder().buildReport())
|
||||
assertThatThrownBy(() -> MONITOR_SERVICE.createTaskStatusReportBuilder().buildReport())
|
||||
.isInstanceOf(NotAuthorizedException.class);
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ class ProvideTaskStatusReportAccTest extends AbstractReportAccTest {
|
|||
@WithAccessId(user = "taskadmin")
|
||||
@TestTemplate
|
||||
void should_ThrowException_IfUserIsNotAdminOrMonitor() {
|
||||
assertThatThrownBy(() -> monitorService.createTaskStatusReportBuilder().buildReport())
|
||||
assertThatThrownBy(() -> MONITOR_SERVICE.createTaskStatusReportBuilder().buildReport())
|
||||
.isInstanceOf(NotAuthorizedException.class);
|
||||
}
|
||||
|
||||
|
@ -53,14 +53,25 @@ class ProvideTaskStatusReportAccTest extends AbstractReportAccTest {
|
|||
@WithAccessId(user = "monitor")
|
||||
@TestTemplate
|
||||
void should_BuildReport_IfUserIsAdminOrMonitor() {
|
||||
assertThatCode(() -> monitorService.createTaskStatusReportBuilder().buildReport())
|
||||
assertThatCode(() -> MONITOR_SERVICE.createTaskStatusReportBuilder().buildReport())
|
||||
.doesNotThrowAnyException();
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void should_augmentDisplayNames_When_ReportIsBuild() throws Exception {
|
||||
TaskStatusReport report = MONITOR_SERVICE.createTaskStatusReportBuilder().buildReport();
|
||||
|
||||
assertThat(report.getRows()).hasSize(3);
|
||||
assertThat(report.getRow("DOMAIN_A").getDisplayName()).isEqualTo("DOMAIN_A");
|
||||
assertThat(report.getRow("DOMAIN_B").getDisplayName()).isEqualTo("DOMAIN_B");
|
||||
assertThat(report.getRow("DOMAIN_C").getDisplayName()).isEqualTo("DOMAIN_C");
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void testCompleteTaskStatusReport() throws Exception {
|
||||
TaskStatusReport report = monitorService.createTaskStatusReportBuilder().buildReport();
|
||||
TaskStatusReport report = MONITOR_SERVICE.createTaskStatusReportBuilder().buildReport();
|
||||
|
||||
assertThat(report).isNotNull();
|
||||
assertThat(report.rowSize()).isEqualTo(3);
|
||||
|
@ -86,7 +97,7 @@ class ProvideTaskStatusReportAccTest extends AbstractReportAccTest {
|
|||
@Test
|
||||
void testCompleteTaskStatusReportWithDomainFilter() throws Exception {
|
||||
TaskStatusReport report =
|
||||
monitorService
|
||||
MONITOR_SERVICE
|
||||
.createTaskStatusReportBuilder()
|
||||
.domainIn(asList("DOMAIN_C", "DOMAIN_A"))
|
||||
.buildReport();
|
||||
|
@ -111,7 +122,7 @@ class ProvideTaskStatusReportAccTest extends AbstractReportAccTest {
|
|||
@Test
|
||||
void testCompleteTaskStatusReportWithStateFilter() throws Exception {
|
||||
TaskStatusReport report =
|
||||
monitorService
|
||||
MONITOR_SERVICE
|
||||
.createTaskStatusReportBuilder()
|
||||
.stateIn(Collections.singletonList(TaskState.READY))
|
||||
.buildReport();
|
||||
|
@ -146,7 +157,7 @@ class ProvideTaskStatusReportAccTest extends AbstractReportAccTest {
|
|||
taskService.cancelTask("TKI:000000000000000000000000000000000013");
|
||||
taskService.cancelTask("TKI:000000000000000000000000000000000014");
|
||||
TaskStatusReport report =
|
||||
monitorService
|
||||
MONITOR_SERVICE
|
||||
.createTaskStatusReportBuilder()
|
||||
.stateIn(
|
||||
Arrays.asList(
|
||||
|
|
|
@ -24,6 +24,17 @@ import pro.taskana.monitor.api.reports.row.TimestampRow;
|
|||
@ExtendWith(JaasExtension.class)
|
||||
class ProvideTimestampReportAccTest extends AbstractReportAccTest {
|
||||
|
||||
private static final MonitorService MONITOR_SERVICE = taskanaEngine.getMonitorService();
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void should_augmentDisplayNames_When_ReportIsBuild() throws Exception {
|
||||
TimestampReport report = MONITOR_SERVICE.createTimestampReportBuilder().buildReport();
|
||||
assertThat(report.getRows()).hasSize(2);
|
||||
assertThat(report.getRow("CREATED").getDisplayName()).isEqualTo("CREATED");
|
||||
assertThat(report.getRow("COMPLETED").getDisplayName()).isEqualTo("COMPLETED");
|
||||
}
|
||||
|
||||
/**
|
||||
* This test covers every insert operation of the TimestampReport. We have two definitions for org
|
||||
* level 1: 'org1' and 'N/A'. All other org levels only contain 'N/A'. Thus this test only tests
|
||||
|
@ -35,7 +46,6 @@ class ProvideTimestampReportAccTest extends AbstractReportAccTest {
|
|||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void testProperInsertionOfQueryItems() throws Exception {
|
||||
MonitorService monitorService = taskanaEngine.getMonitorService();
|
||||
|
||||
// last 14 days. Today excluded.
|
||||
List<TimeIntervalColumnHeader> headers =
|
||||
|
@ -43,7 +53,7 @@ class ProvideTimestampReportAccTest extends AbstractReportAccTest {
|
|||
.mapToObj(TimeIntervalColumnHeader.Date::new)
|
||||
.collect(Collectors.toList());
|
||||
TimestampReport timestampReport =
|
||||
monitorService.createTimestampReportBuilder().withColumnHeaders(headers).buildReport();
|
||||
MONITOR_SERVICE.createTimestampReportBuilder().withColumnHeaders(headers).buildReport();
|
||||
final HashSet<String> org1Set = new HashSet<>(Arrays.asList("N/A", "org1"));
|
||||
final HashSet<String> allOtherOrgLevelSet = new HashSet<>(Collections.singletonList("N/A"));
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ import java.util.HashMap;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.IntStream;
|
||||
import java.util.stream.Stream;
|
||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||
import org.junit.jupiter.api.DynamicTest;
|
||||
|
@ -43,6 +42,16 @@ class ProvideWorkbasketReportAccTest extends AbstractReportAccTest {
|
|||
.isInstanceOf(NotAuthorizedException.class);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void should_augmentDisplayNames_When_ReportIsBuild() throws Exception {
|
||||
WorkbasketReport report = MONITOR_SERVICE.createWorkbasketReportBuilder().buildReport();
|
||||
assertThat(report.getRows()).hasSize(3);
|
||||
assertThat(report.getRow("USER-1-1").getDisplayName()).isEqualTo("PPK User 1 KSC 1");
|
||||
assertThat(report.getRow("USER-1-2").getDisplayName()).isEqualTo("PPK User 1 KSC 2");
|
||||
assertThat(report.getRow("USER-1-3").getDisplayName()).isEqualTo("PPK User 1 KSC 3");
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
@Test
|
||||
void testGetTotalNumbersOfTasksOfWorkbasketReportBasedOnDueDate() throws Exception {
|
||||
|
@ -70,8 +79,6 @@ class ProvideWorkbasketReportAccTest extends AbstractReportAccTest {
|
|||
.inWorkingDays()
|
||||
.buildReport();
|
||||
|
||||
final int sumLineCount = IntStream.of(report.getSumRow().getCells()).sum();
|
||||
|
||||
assertThat(report).isNotNull();
|
||||
assertThat(report.rowSize()).isEqualTo(3);
|
||||
|
||||
|
@ -81,9 +88,7 @@ class ProvideWorkbasketReportAccTest extends AbstractReportAccTest {
|
|||
|
||||
int[] sumRow = report.getSumRow().getCells();
|
||||
assertThat(sumRow).isEqualTo(new int[] {10, 9, 11, 0, 4, 0, 7, 4, 5});
|
||||
|
||||
assertThat(report.getSumRow().getTotalValue()).isEqualTo(50);
|
||||
assertThat(sumLineCount).isEqualTo(50);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "monitor")
|
||||
|
|
|
@ -80,7 +80,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
.thenReturn(expectedResult);
|
||||
|
||||
final ClassificationCategoryReport actualResult =
|
||||
cut.createCategoryReportBuilder()
|
||||
cut.createClassificationCategoryReportBuilder()
|
||||
.workbasketIdIn(workbasketIds)
|
||||
.stateIn(states)
|
||||
.classificationCategoryIn(categories)
|
||||
|
@ -140,7 +140,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
.thenReturn(expectedResult);
|
||||
|
||||
final ClassificationCategoryReport actualResult =
|
||||
cut.createCategoryReportBuilder()
|
||||
cut.createClassificationCategoryReportBuilder()
|
||||
.workbasketIdIn(workbasketIds)
|
||||
.stateIn(states)
|
||||
.classificationCategoryIn(categories)
|
||||
|
@ -206,7 +206,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
.thenReturn(expectedResult);
|
||||
|
||||
final List<String> actualResult =
|
||||
cut.createCategoryReportBuilder()
|
||||
cut.createClassificationCategoryReportBuilder()
|
||||
.workbasketIdIn(workbasketIds)
|
||||
.stateIn(states)
|
||||
.classificationCategoryIn(categories)
|
||||
|
@ -239,7 +239,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
SelectedItem selectedItem = new SelectedItem();
|
||||
List<SelectedItem> selectedItems = Collections.singletonList(selectedItem);
|
||||
List<String> result =
|
||||
cut.createCategoryReportBuilder().listTaskIdsForSelectedItems(selectedItems);
|
||||
cut.createClassificationCategoryReportBuilder().listTaskIdsForSelectedItems(selectedItems);
|
||||
assertThat(result).isNotNull();
|
||||
}
|
||||
|
||||
|
@ -275,7 +275,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
.thenReturn(expectedResult);
|
||||
|
||||
final List<String> actualResult =
|
||||
cut.createCategoryReportBuilder()
|
||||
cut.createClassificationCategoryReportBuilder()
|
||||
.workbasketIdIn(workbasketIds)
|
||||
.stateIn(states)
|
||||
.classificationCategoryIn(categories)
|
||||
|
@ -305,7 +305,7 @@ class ClassificationClassificationCategoryReportBuilderImplTest {
|
|||
@Test
|
||||
void testListCustomAttributeValuesForCustomAttributeNameIsEmptyResult() throws Exception {
|
||||
List<String> result =
|
||||
cut.createCategoryReportBuilder()
|
||||
cut.createClassificationCategoryReportBuilder()
|
||||
.workbasketIdIn(Collections.singletonList("DieGibtsSicherNed"))
|
||||
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
|
||||
assertThat(result).isNotNull();
|
||||
|
|
|
@ -3,6 +3,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.mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
|
@ -22,6 +23,8 @@ import org.mockito.Mock;
|
|||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import pro.taskana.TaskanaEngineConfiguration;
|
||||
import pro.taskana.classification.api.ClassificationQuery;
|
||||
import pro.taskana.classification.api.ClassificationService;
|
||||
import pro.taskana.common.api.TaskanaEngine;
|
||||
import pro.taskana.common.internal.InternalTaskanaEngine;
|
||||
import pro.taskana.monitor.api.SelectedItem;
|
||||
|
@ -40,18 +43,26 @@ import pro.taskana.task.api.TaskState;
|
|||
class ClassificationReportBuilderImplTest {
|
||||
|
||||
@InjectMocks private MonitorServiceImpl cut;
|
||||
|
||||
@Mock private InternalTaskanaEngine internalTaskanaEngineMock;
|
||||
|
||||
@Mock private TaskanaEngine taskanaEngineMock;
|
||||
|
||||
@Mock private TaskanaEngineConfiguration taskanaEngineConfiguration;
|
||||
|
||||
@Mock private MonitorMapper monitorMapperMock;
|
||||
@Mock private ClassificationService classificationService;
|
||||
|
||||
private Object[] mocks;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
when(internalTaskanaEngineMock.getEngine()).thenReturn(taskanaEngineMock);
|
||||
when(taskanaEngineMock.getClassificationService()).thenReturn(classificationService);
|
||||
mocks =
|
||||
new Object[] {
|
||||
internalTaskanaEngineMock,
|
||||
taskanaEngineMock,
|
||||
monitorMapperMock,
|
||||
taskanaEngineConfiguration,
|
||||
classificationService
|
||||
};
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -82,6 +93,12 @@ class ClassificationReportBuilderImplTest {
|
|||
customAttributeFilter))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
ClassificationQuery queryMock = mock(ClassificationQuery.class);
|
||||
when(classificationService.createClassificationQuery()).thenReturn(queryMock);
|
||||
when(queryMock.keyIn(any())).thenReturn(queryMock);
|
||||
when(queryMock.domainIn(any())).thenReturn(queryMock);
|
||||
when(queryMock.list()).thenReturn(Collections.emptyList());
|
||||
|
||||
final ClassificationReport actualResult =
|
||||
cut.createClassificationReportBuilder()
|
||||
.workbasketIdIn(workbasketIds)
|
||||
|
@ -96,16 +113,15 @@ class ClassificationReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(taskanaEngineMock).getClassificationService();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
taskanaEngineMock,
|
||||
monitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
|
||||
verifyNoMoreInteractions(queryMock);
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
assertThat(actualResult.getRow("CLI:000000000000000000000000000000000001").getTotalValue())
|
||||
|
@ -144,6 +160,11 @@ class ClassificationReportBuilderImplTest {
|
|||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
.thenReturn(expectedResult);
|
||||
ClassificationQuery queryMock = mock(ClassificationQuery.class);
|
||||
when(classificationService.createClassificationQuery()).thenReturn(queryMock);
|
||||
when(queryMock.keyIn(any())).thenReturn(queryMock);
|
||||
when(queryMock.domainIn(any())).thenReturn(queryMock);
|
||||
when(queryMock.list()).thenReturn(Collections.emptyList());
|
||||
|
||||
final ClassificationReport actualResult =
|
||||
cut.createClassificationReportBuilder()
|
||||
|
@ -160,16 +181,14 @@ class ClassificationReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(taskanaEngineMock).getClassificationService();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
taskanaEngineMock,
|
||||
monitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
verifyNoMoreInteractions(queryMock);
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
assertThat(actualResult.getRow("CLI:000000000000000000000000000000000001").getTotalValue())
|
||||
|
@ -207,6 +226,11 @@ class ClassificationReportBuilderImplTest {
|
|||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
.thenReturn(expectedResult);
|
||||
ClassificationQuery queryMock = mock(ClassificationQuery.class);
|
||||
when(classificationService.createClassificationQuery()).thenReturn(queryMock);
|
||||
when(queryMock.keyIn(any())).thenReturn(queryMock);
|
||||
when(queryMock.domainIn(any())).thenReturn(queryMock);
|
||||
when(queryMock.list()).thenReturn(Collections.emptyList());
|
||||
|
||||
final DetailedClassificationReport actualResult =
|
||||
cut.createClassificationReportBuilder()
|
||||
|
@ -222,17 +246,15 @@ class ClassificationReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(taskanaEngineMock).getClassificationService();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfDetailedClassifications(
|
||||
any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
taskanaEngineMock,
|
||||
monitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
verifyNoMoreInteractions(queryMock);
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
||||
FoldableRow<DetailedMonitorQueryItem> line =
|
||||
actualResult.getRow("CLI:000000000000000000000000000000000001");
|
||||
|
@ -274,6 +296,11 @@ class ClassificationReportBuilderImplTest {
|
|||
excludedClassificationIds,
|
||||
customAttributeFilter))
|
||||
.thenReturn(expectedResult);
|
||||
ClassificationQuery queryMock = mock(ClassificationQuery.class);
|
||||
when(classificationService.createClassificationQuery()).thenReturn(queryMock);
|
||||
when(queryMock.keyIn(any())).thenReturn(queryMock);
|
||||
when(queryMock.domainIn(any())).thenReturn(queryMock);
|
||||
when(queryMock.list()).thenReturn(Collections.emptyList());
|
||||
|
||||
final DetailedClassificationReport actualResult =
|
||||
cut.createClassificationReportBuilder()
|
||||
|
@ -290,17 +317,15 @@ class ClassificationReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(taskanaEngineMock).getClassificationService();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfDetailedClassifications(
|
||||
any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
taskanaEngineMock,
|
||||
monitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
verifyNoMoreInteractions(queryMock);
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
||||
FoldableRow<DetailedMonitorQueryItem> line =
|
||||
actualResult.getRow("CLI:000000000000000000000000000000000001");
|
||||
|
@ -365,17 +390,14 @@ class ClassificationReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
|
||||
verify(monitorMapperMock)
|
||||
.getTaskIdsForSelectedItems(
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
taskanaEngineMock,
|
||||
monitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
verify(taskanaEngineMock).getClassificationService();
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
assertThat(actualResult).isEqualTo(expectedResult);
|
||||
|
@ -439,16 +461,13 @@ class ClassificationReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
|
||||
verify(monitorMapperMock)
|
||||
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verifyNoMoreInteractions(
|
||||
internalTaskanaEngineMock,
|
||||
taskanaEngineMock,
|
||||
monitorMapperMock,
|
||||
taskanaEngineConfiguration);
|
||||
verify(taskanaEngineMock).getClassificationService();
|
||||
verifyNoMoreInteractions(mocks);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
assertThat(actualResult).isEqualTo(expectedResult);
|
||||
|
|
|
@ -5,6 +5,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
@ -235,6 +236,38 @@ class ReportTest {
|
|||
assertThat(sumRow.getTotalValue()).isEqualTo(2 * item.getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
void should_FallBackToKey_When_DisplayMapDoesNotContainName() {
|
||||
report.augmentDisplayNames(new HashMap<>());
|
||||
|
||||
assertThat(report.getSumRow().getDisplayName()).isEqualTo(report.getSumRow().getKey());
|
||||
}
|
||||
|
||||
@Test
|
||||
void should_SetDisplayName_When_DisplayMapContainsName() {
|
||||
HashMap<String, String> displayMap = new HashMap<>();
|
||||
displayMap.put(report.getSumRow().getKey(), "BLA BLA");
|
||||
report.augmentDisplayNames(displayMap);
|
||||
|
||||
assertThat(report.getSumRow().getDisplayName()).isEqualTo("BLA BLA");
|
||||
}
|
||||
|
||||
@Test
|
||||
void should_SetDisplayNameForFoldableRows_When_DisplayMapContainsNames() {
|
||||
ReportWithFoldableRow report =
|
||||
new ReportWithFoldableRow(HEADERS, new String[] {"totalDesc", "foldalbeRowDesc"});
|
||||
report.addItem(item);
|
||||
|
||||
HashMap<String, String> displayMap = new HashMap<>();
|
||||
displayMap.put("key", "displayname for key");
|
||||
displayMap.put("KEY", "displayname for KEY");
|
||||
report.augmentDisplayNames(displayMap);
|
||||
|
||||
FoldableTestRow row = report.getRow("key");
|
||||
assertThat(row.getDisplayName()).isEqualTo("displayname for key");
|
||||
assertThat(row.getFoldableRow("KEY").getDisplayName()).isEqualTo("displayname for KEY");
|
||||
}
|
||||
|
||||
private static class MonitorQueryItemTimeIntervalColumnHeaderReport
|
||||
extends Report<MonitorQueryItem, TimeIntervalColumnHeader> {
|
||||
|
||||
|
|
|
@ -86,6 +86,7 @@ class WorkbasketReportBuilderImplTest {
|
|||
customAttributeFilter,
|
||||
combinedClassificationFilter))
|
||||
.thenReturn(expectedResult);
|
||||
when(internalTaskanaEngineMock.runAsAdmin(any())).thenReturn(Collections.emptyMap());
|
||||
|
||||
final WorkbasketReport actualResult =
|
||||
cut.createWorkbasketReportBuilder()
|
||||
|
@ -102,10 +103,12 @@ class WorkbasketReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfWorkbaskets(any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verify(internalTaskanaEngineMock).runAsAdmin(any());
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
verifyNoMoreInteractions(internalTaskanaEngineMock, taskanaEngineMock, monitorMapperMock);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
|
@ -150,6 +153,7 @@ class WorkbasketReportBuilderImplTest {
|
|||
customAttributeFilter,
|
||||
combinedClassificationFilter))
|
||||
.thenReturn(expectedResult);
|
||||
when(internalTaskanaEngineMock.runAsAdmin(any())).thenReturn(Collections.emptyMap());
|
||||
|
||||
final WorkbasketReport actualResult =
|
||||
cut.createWorkbasketReportBuilder()
|
||||
|
@ -167,10 +171,11 @@ class WorkbasketReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfWorkbaskets(any(), any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
verifyNoMoreInteractions(internalTaskanaEngineMock, taskanaEngineMock, monitorMapperMock);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
|
@ -231,11 +236,12 @@ class WorkbasketReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskIdsForSelectedItems(
|
||||
any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
verifyNoMoreInteractions(internalTaskanaEngineMock, taskanaEngineMock, monitorMapperMock);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
|
@ -302,10 +308,11 @@ class WorkbasketReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(any());
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
verifyNoMoreInteractions(internalTaskanaEngineMock, taskanaEngineMock, monitorMapperMock);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
|
@ -333,7 +340,7 @@ class WorkbasketReportBuilderImplTest {
|
|||
Map<CustomField, String> customAttributeFilter = new HashMap<>();
|
||||
customAttributeFilter.put(CustomField.CUSTOM_1, "Geschaeftsstelle A");
|
||||
final List<CombinedClassificationFilter> combinedClassificationFilter =
|
||||
Arrays.asList(
|
||||
Collections.singletonList(
|
||||
new CombinedClassificationFilter(
|
||||
"CLI:000000000000000000000000000000000003",
|
||||
"CLI:000000000000000000000000000000000008"));
|
||||
|
@ -355,6 +362,8 @@ class WorkbasketReportBuilderImplTest {
|
|||
combinedClassificationFilter))
|
||||
.thenReturn(expectedResult);
|
||||
|
||||
when(internalTaskanaEngineMock.runAsAdmin(any())).thenReturn(Collections.emptyMap());
|
||||
|
||||
final WorkbasketReport actualResult =
|
||||
cut.createWorkbasketReportBuilder()
|
||||
.workbasketIdIn(workbasketIds)
|
||||
|
@ -370,7 +379,7 @@ class WorkbasketReportBuilderImplTest {
|
|||
verify(internalTaskanaEngineMock).openConnection();
|
||||
verify(taskanaEngineMock).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
|
||||
verify(taskanaEngineMock).getWorkingDaysToDaysConverter();
|
||||
verify(internalTaskanaEngineMock, times(2)).getEngine();
|
||||
verify(internalTaskanaEngineMock, times(3)).getEngine();
|
||||
verify(monitorMapperMock)
|
||||
.getTaskCountOfWorkbaskets(
|
||||
workbasketIds,
|
||||
|
@ -383,6 +392,7 @@ class WorkbasketReportBuilderImplTest {
|
|||
customAttributeFilter,
|
||||
combinedClassificationFilter);
|
||||
verify(internalTaskanaEngineMock).returnConnection();
|
||||
verify(taskanaEngineMock).getWorkbasketService();
|
||||
verifyNoMoreInteractions(internalTaskanaEngineMock, taskanaEngineMock, monitorMapperMock);
|
||||
|
||||
assertThat(actualResult).isNotNull();
|
||||
|
|
|
@ -4,7 +4,7 @@ INSERT INTO WORKBASKET VALUES ('WBI:000000000000000000000000000000000002', 'USER
|
|||
INSERT INTO WORKBASKET VALUES ('WBI:000000000000000000000000000000000003', 'USER-1-3', RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'PPK User 1 KSC 3', 'MONITOR_TEST_DOMAIN', 'PERSONAL', 'Monitor Test Postkorb 3', 'John' , '' , '' , '' , '' , 'org1' , '' , '' , '' , FALSE );
|
||||
INSERT INTO WORKBASKET VALUES ('WBI:000000000000000000000000000000000004', 'USER-1-4', RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'PPK User 1 KSC 4', 'MONITOR_TEST_DOMAIN', 'PERSONAL', 'Monitor Test Postkorb 4', 'John' , '' , '' , '' , '' , '' , '' , '' , '' , FALSE );
|
||||
|
||||
-- CLASSIFICATION TABLE (ID , KEY , PARENT_ID , PARENT_KEY, CATEGORY , TYPE , DOMAIN , VALID_IN_DOMAIN, CREATED , MODIFIED ,NAME , DESCRIPTION , PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1 , CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8 );
|
||||
-- CLASSIFICATION TABLE (ID , KEY , PARENT_ID , PARENT_KEY, CATEGORY , TYPE , DOMAIN , VALID_IN_DOMAIN, CREATED , MODIFIED ,NAME , DESCRIPTION , PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1 , CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8 );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000001', 'L10000', '' , '' , 'EXTERN' , 'TASK', 'DOMAIN_A', TRUE , RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'OLD-Leistungsfall' , 'OLD-Leistungsfall' , 3 , 'P1D' , '' , 'VNR,RVNR,KOLVNR' , '' , '' , '' , '' , '' , '' , '' );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000002', 'L20000', 'CLI:000000000000000000000000000000000001' , 'L10000', 'EXTERN' , 'TASK', 'DOMAIN_A', TRUE , RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'Beratungsprotokoll' , 'Beratungsprotokoll', 1 , 'P1D' , '' , 'VNR,RVNR,KOLVNR, ANR', '' , '' , '' , '' , '' , '' , '' );
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000003', 'L30000', 'CLI:000000000000000000000000000000000001' , 'L10000', 'AUTOMATIC', 'TASK', 'DOMAIN_A', TRUE , RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'Widerruf' , 'Widerruf' , 1 , 'P1D' , '' , 'VNR,RVNR,KOLVNR' , '' , '' , '' , '' , '' , '' , '' );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
-- ID, KEY, PARENT_ID, PARENT_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, MODIFIED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1 - 8
|
||||
-- ID, KEY, PARENT_ID, PARENT_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, MODIFIED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1 - 8
|
||||
-- MASTER CLASSIFICATIONS
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000001', 'L10000', '', '', 'EXTERNAL', 'TASK', '', FALSE, RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'OLD-Leistungsfall', 'OLD-Leistungsfall', 999, 'P1D', '', 'VNR,RVNR,KOLVNR', '', '', '', '', '', '', '');
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000002', 'L10303', '', '', 'EXTERNAL', 'TASK', '', FALSE, RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'Beratungsprotokoll', 'Beratungsprotokoll', 1, 'P2D', '', 'VNR,RVNR,KOLVNR, ANR', '', '', '', '', '', '', '');
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
-- ID, KEY, PARENT_ID, PARENT_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, MODIFIED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1 - 8
|
||||
-- ID, KEY, PARENT_ID, PARENT_KEY, CATEGORY, TYPE, DOMAIN, VALID_IN_DOMAIN, CREATED, MODIFIED, NAME, DESCRIPTION, PRIORITY, SERVICE_LEVEL, APPLICATION_ENTRY_POINT, CUSTOM_1 - 8
|
||||
-- MASTER CLASSIFICATIONS
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000001', 'L10000', '', '', 'EXTERNAL', 'TASK', '', FALSE, RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'OLD-Leistungsfall', 'OLD-Leistungsfall', 999, 'P1D', '', 'VNR,RVNR,KOLVNR', '', '', '', '', '', '', '');
|
||||
INSERT INTO CLASSIFICATION VALUES('CLI:000000000000000000000000000000000002', 'L10303', '', '', 'EXTERNAL', 'TASK', '', FALSE, RELATIVE_DATE(0) , RELATIVE_DATE(0) , 'Beratungsprotokoll', 'Beratungsprotokoll', 1, 'P2D', '', 'VNR,RVNR,KOLVNR, ANR', '', '', '', '', '', '', '');
|
||||
|
|
|
@ -107,18 +107,18 @@ public class ReportRepresentationModelAssembler {
|
|||
|
||||
// iterate over each Row and transform it to a RowResource while keeping the domain key.
|
||||
List<ReportRepresentationModel.RowResource> rows =
|
||||
report.getRows().entrySet().stream()
|
||||
report.getRows().values().stream()
|
||||
.sorted(Comparator.comparing(e -> e.getKey().toLowerCase()))
|
||||
.map(
|
||||
i ->
|
||||
transformRow(
|
||||
i.getValue(), i.getKey(), new String[report.getRowDesc().length], 0))
|
||||
i, new String[report.getRowDesc().length], 0))
|
||||
.flatMap(Collection::stream)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<ReportRepresentationModel.RowResource> sumRow =
|
||||
transformRow(
|
||||
report.getSumRow(), meta.getTotalDesc(), new String[report.getRowDesc().length], 0);
|
||||
report.getSumRow(), new String[report.getRowDesc().length], 0);
|
||||
|
||||
return new ReportRepresentationModel(meta, rows, sumRow);
|
||||
}
|
||||
|
@ -129,36 +129,36 @@ public class ReportRepresentationModelAssembler {
|
|||
}
|
||||
|
||||
private <I extends QueryItem> List<ReportRepresentationModel.RowResource> transformRow(
|
||||
Row<I> row, String currentDesc, String[] desc, int depth) {
|
||||
Row<I> row, String[] desc, int depth) {
|
||||
// This is a very dirty solution.. Personally I'd prefer to use a visitor-like pattern here.
|
||||
// The issue with that: Addition of the visitor code within taskana-core - and having clean code
|
||||
// is not
|
||||
// a reason to append code somewhere where it doesn't belong.
|
||||
if (row.getClass() == SingleRow.class) {
|
||||
return Collections.singletonList(
|
||||
transformSingleRow((SingleRow<I>) row, currentDesc, desc, depth));
|
||||
transformSingleRow((SingleRow<I>) row, desc, depth));
|
||||
}
|
||||
return transformFoldableRow((FoldableRow<I>) row, currentDesc, desc, depth);
|
||||
return transformFoldableRow((FoldableRow<I>) row, desc, depth);
|
||||
}
|
||||
|
||||
private <I extends QueryItem> ReportRepresentationModel.RowResource transformSingleRow(
|
||||
SingleRow<I> row, String currentDesc, String[] previousRowDesc, int depth) {
|
||||
SingleRow<I> row, String[] previousRowDesc, int depth) {
|
||||
String[] rowDesc = new String[previousRowDesc.length];
|
||||
System.arraycopy(previousRowDesc, 0, rowDesc, 0, depth);
|
||||
rowDesc[depth] = currentDesc;
|
||||
rowDesc[depth] = row.getDisplayName();
|
||||
return new ReportRepresentationModel.RowResource(
|
||||
row.getCells(), row.getTotalValue(), depth, rowDesc, depth == 0);
|
||||
}
|
||||
|
||||
private <I extends QueryItem> List<ReportRepresentationModel.RowResource> transformFoldableRow(
|
||||
FoldableRow<I> row, String currentDesc, String[] previousRowDesc, int depth) {
|
||||
FoldableRow<I> row, String[] previousRowDesc, int depth) {
|
||||
ReportRepresentationModel.RowResource baseRow =
|
||||
transformSingleRow(row, currentDesc, previousRowDesc, depth);
|
||||
transformSingleRow(row, previousRowDesc, depth);
|
||||
List<ReportRepresentationModel.RowResource> rowList = new LinkedList<>();
|
||||
rowList.add(baseRow);
|
||||
row.getFoldableRowKeySet().stream()
|
||||
.sorted(String.CASE_INSENSITIVE_ORDER)
|
||||
.map(s -> transformRow(row.getFoldableRow(s), s, baseRow.getDesc(), depth + 1))
|
||||
.map(s -> transformRow(row.getFoldableRow(s), baseRow.getDesc(), depth + 1))
|
||||
.flatMap(Collection::stream)
|
||||
.forEachOrdered(rowList::add);
|
||||
return rowList;
|
||||
|
|
|
@ -94,7 +94,8 @@ public class ReportRepresentationModel extends RepresentationModel<ReportReprese
|
|||
private final String[] rowDesc;
|
||||
private final String totalDesc;
|
||||
|
||||
public MetaInformation(String name, String date, String[] header, String[] rowDesc, String totalDesc) {
|
||||
public MetaInformation(
|
||||
String name, String date, String[] header, String[] rowDesc, String totalDesc) {
|
||||
this.name = name;
|
||||
this.date = date;
|
||||
this.header = header;
|
||||
|
|
|
@ -62,7 +62,7 @@ class ReportRepresentationModelTest {
|
|||
ReportRepresentationModel.MetaInformation meta = resource.getMeta();
|
||||
assertEquals("WorkbasketReport", meta.getName());
|
||||
assertEquals("2019-01-02T00:00:00Z", meta.getDate());
|
||||
assertArrayEquals(new String[] {"WORKBASKET KEYS"}, meta.getRowDesc());
|
||||
assertArrayEquals(new String[] {"WORKBASKET"}, meta.getRowDesc());
|
||||
assertArrayEquals(
|
||||
headers.stream().map(TimeIntervalColumnHeader::getDisplayName).toArray(), meta.getHeader());
|
||||
assertEquals("Total", meta.getTotalDesc());
|
||||
|
@ -98,7 +98,7 @@ class ReportRepresentationModelTest {
|
|||
ReportRepresentationModel.MetaInformation meta = resource.getMeta();
|
||||
assertEquals("ClassificationReport", meta.getName());
|
||||
assertEquals("2019-01-02T00:00:00Z", meta.getDate());
|
||||
assertArrayEquals(new String[] {"CLASSIFICATION KEYS"}, meta.getRowDesc());
|
||||
assertArrayEquals(new String[] {"CLASSIFICATION"}, meta.getRowDesc());
|
||||
assertArrayEquals(
|
||||
headers.stream().map(TimeIntervalColumnHeader::getDisplayName).toArray(), meta.getHeader());
|
||||
assertEquals("Total", meta.getTotalDesc());
|
||||
|
@ -144,7 +144,7 @@ class ReportRepresentationModelTest {
|
|||
ReportRepresentationModel.MetaInformation meta = resource.getMeta();
|
||||
assertEquals("ClassificationReport", meta.getName());
|
||||
assertEquals("2019-01-02T00:00:00Z", meta.getDate());
|
||||
assertArrayEquals(new String[] {"CLASSIFICATION KEYS"}, meta.getRowDesc());
|
||||
assertArrayEquals(new String[] {"CLASSIFICATION"}, meta.getRowDesc());
|
||||
assertArrayEquals(
|
||||
headers.stream().map(TimeIntervalColumnHeader::getDisplayName).toArray(), meta.getHeader());
|
||||
assertEquals("Total", meta.getTotalDesc());
|
||||
|
@ -199,7 +199,7 @@ class ReportRepresentationModelTest {
|
|||
ReportRepresentationModel.MetaInformation meta = resource.getMeta();
|
||||
assertEquals("DetailedClassificationReport", meta.getName());
|
||||
assertEquals("2019-01-02T00:00:00Z", meta.getDate());
|
||||
assertArrayEquals(new String[] {"TASK CLASSIFICATION KEYS", "ATTACHMENT"}, meta.getRowDesc());
|
||||
assertArrayEquals(new String[] {"TASK CLASSIFICATION", "ATTACHMENT"}, meta.getRowDesc());
|
||||
assertArrayEquals(
|
||||
headers.stream().map(TimeIntervalColumnHeader::getDisplayName).toArray(), meta.getHeader());
|
||||
assertEquals("Total", meta.getTotalDesc());
|
||||
|
@ -279,7 +279,7 @@ class ReportRepresentationModelTest {
|
|||
ReportRepresentationModel.MetaInformation meta = resource.getMeta();
|
||||
assertEquals("DetailedClassificationReport", meta.getName());
|
||||
assertEquals("2019-01-02T00:00:00Z", meta.getDate());
|
||||
assertArrayEquals(new String[] {"TASK CLASSIFICATION KEYS", "ATTACHMENT"}, meta.getRowDesc());
|
||||
assertArrayEquals(new String[] {"TASK CLASSIFICATION", "ATTACHMENT"}, meta.getRowDesc());
|
||||
assertArrayEquals(
|
||||
headers.stream().map(TimeIntervalColumnHeader::getDisplayName).toArray(), meta.getHeader());
|
||||
assertEquals("Total", meta.getTotalDesc());
|
||||
|
|
Loading…
Reference in New Issue