TSK-1226: made corpus christi configurable from taskana.properties file

This commit is contained in:
Mustapha Zorgati 2020-05-22 14:11:47 +02:00
parent 4ed089fa98
commit d4a516863e
16 changed files with 291 additions and 187 deletions

View File

@ -71,24 +71,23 @@ public class TaskanaEngineConfiguration {
private static final String TASKANA_CLASSIFICATION_CATEGORIES_PROPERTY =
"taskana.classification.categories";
private static final String TASKANA_GERMAN_HOLIDAYS_ENABLED = "taskana.german.holidays.enabled";
private static final String TASKANA_GERMAN_HOLIDAYS_CORPUS_CHRISTI_ENABLED =
"taskana.german.holidays.corpus-christi.enabled";
// TASKANA_SCHEMA_VERSION
private static final String DEFAULT_SCHEMA_NAME = "TASKANA";
private static final String TASKANA_CUSTOM_HOLIDAY = "taskana.custom.holidays";
private static final String TASKANA_CUSTOM_HOLIDAY_DAY_MONTH_SEPERATOR = ".";
private final List<CustomHoliday> customHolidays = new ArrayList<>();
// Taskana properties file
protected String propertiesFileName = TASKANA_PROPERTIES;
// Taskana datasource configuration
protected DataSource dataSource;
protected DbSchemaCreator dbSchemaCreator;
protected String schemaName;
// Taskana role configuration
protected String propertiesSeparator = TASKANA_PROPERTY_SEPARATOR;
protected Map<TaskanaRole, Set<String>> roleMap = new HashMap<>();
// global switch to enable JAAS based authentication and Taskana
// authorizations
protected boolean securityEnabled;
@ -101,7 +100,7 @@ public class TaskanaEngineConfiguration {
protected Map<String, List<String>> classificationCategoriesByTypeMap = new HashMap<>();
// Properties for the monitor
private boolean germanPublicHolidaysEnabled;
private List<CustomHoliday> customHolidays = new ArrayList<>();
private boolean corpusChristiEnabled;
// Properties for general job execution
private int jobBatchSize = 100;
private int maxNumberOfJobRetries = 3;
@ -180,6 +179,7 @@ public class TaskanaEngineConfiguration {
initClassificationTypes(props);
initClassificationCategories(props);
initGermanHolidaysEnabled(props);
initCorpusChristiEnabled(props);
initCustomHolidays(props);
}
@ -251,6 +251,14 @@ public class TaskanaEngineConfiguration {
this.propertiesSeparator = propertiesSeparator;
}
public boolean isCorpusChristiEnabled() {
return corpusChristiEnabled;
}
public void setCorpusChristiEnabled(boolean corpusChristiEnabled) {
this.corpusChristiEnabled = corpusChristiEnabled;
}
public boolean isGermanPublicHolidaysEnabled() {
return this.germanPublicHolidaysEnabled;
}
@ -264,7 +272,7 @@ public class TaskanaEngineConfiguration {
}
public void addCustomHolidays(List<CustomHoliday> customHolidays) {
customHolidays.forEach(this.customHolidays::add);
this.customHolidays.addAll(customHolidays);
}
public Map<TaskanaRole, Set<String>> getRoleMap() {
@ -363,6 +371,16 @@ public class TaskanaEngineConfiguration {
LOGGER.debug("GermanPublicHolidaysEnabled = {}", germanPublicHolidaysEnabled);
}
private void initCorpusChristiEnabled(Properties props) {
String enabled = props.getProperty(TASKANA_GERMAN_HOLIDAYS_CORPUS_CHRISTI_ENABLED);
if (enabled != null && !enabled.isEmpty()) {
corpusChristiEnabled = Boolean.parseBoolean(enabled);
} else {
corpusChristiEnabled = false;
}
LOGGER.debug("CorpusChristiEnabled = {}", corpusChristiEnabled);
}
private void initJobParameters(Properties props) {
String jobBatchSizeProperty = props.getProperty(TASKANA_JOB_BATCHSIZE);
if (jobBatchSizeProperty != null && !jobBatchSizeProperty.isEmpty()) {

View File

@ -8,6 +8,8 @@ import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@ -30,8 +32,10 @@ public final class WorkingDaysToDaysConverter {
private static final long OFFSET_EASTER_MONDAY = 1; // Ostermontag
private static final long OFFSET_ASCENSION_DAY = 39; // Himmelfahrt
private static final long OFFSET_WHIT_MONDAY = 50; // Pfingstmontag
private static final long OFFSET_CORPUS_CHRISTI = 60; // Fronleichnam
private static boolean germanHolidaysEnabled;
private static boolean corpusChristiEnabled; // Fronleichnam
private static Set<CustomHoliday> customHolidays = new HashSet<>();
private Instant referenceDate;
private LocalDate easterSunday;
@ -84,6 +88,10 @@ public final class WorkingDaysToDaysConverter {
germanHolidaysEnabled = germanPublicHolidaysEnabled;
}
public static void setCorpusChristiEnabled(boolean corpusChristiEnabled) {
WorkingDaysToDaysConverter.corpusChristiEnabled = corpusChristiEnabled;
}
public static void setCustomHolidays(List<CustomHoliday> holidays) {
customHolidays = new HashSet<>(holidays == null ? Collections.emptyList() : holidays);
}
@ -157,9 +165,18 @@ public final class WorkingDaysToDaysConverter {
// Easter holidays Good Friday, Easter Monday, Ascension Day, Whit Monday.
long diffFromEasterSunday = DAYS.between(easterSunday, date);
return LongStream.of(
OFFSET_GOOD_FRIDAY, OFFSET_EASTER_MONDAY, OFFSET_ASCENSION_DAY, OFFSET_WHIT_MONDAY)
.anyMatch(diff -> diff == diffFromEasterSunday);
List<Long> offSets =
new ArrayList<>(
Arrays.asList(
OFFSET_GOOD_FRIDAY,
OFFSET_EASTER_MONDAY,
OFFSET_ASCENSION_DAY,
OFFSET_WHIT_MONDAY));
if (corpusChristiEnabled) {
offSets.add(OFFSET_CORPUS_CHRISTI);
}
return offSets.contains(diffFromEasterSunday);
}
/**
@ -199,7 +216,7 @@ public final class WorkingDaysToDaysConverter {
}
}
private void refreshReferenceDate(Instant newReferenceDate) {
void refreshReferenceDate(Instant newReferenceDate) {
int yearOfReferenceDate =
LocalDateTime.ofInstant(referenceDate, ZoneId.systemDefault()).getYear();
int yearOfNewReferenceDate =

View File

@ -8,6 +8,7 @@ import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.TaskanaEngineConfiguration;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
@ -186,10 +187,11 @@ abstract class TimeIntervalReportBuilderImpl<
protected abstract String determineGroupedBy();
private void configureWorkingDaysToDaysConverter() {
WorkingDaysToDaysConverter.setCustomHolidays(
this.taskanaEngine.getEngine().getConfiguration().getCustomHolidays());
TaskanaEngineConfiguration configuration = taskanaEngine.getEngine().getConfiguration();
WorkingDaysToDaysConverter.setCustomHolidays(configuration.getCustomHolidays());
WorkingDaysToDaysConverter.setGermanPublicHolidaysEnabled(
this.taskanaEngine.getEngine().getConfiguration().isGermanPublicHolidaysEnabled());
configuration.isGermanPublicHolidaysEnabled());
WorkingDaysToDaysConverter.setCorpusChristiEnabled(configuration.isCorpusChristiEnabled());
}
private List<SelectedItem> convertWorkingDaysToDays(

View File

@ -38,7 +38,7 @@ class ServiceLevelHandler {
private final InternalTaskanaEngine taskanaEngine;
private final TaskMapper taskMapper;
private final AttachmentMapper attachmentMapper;
private WorkingDaysToDaysConverter converter;
private final WorkingDaysToDaysConverter converter;
ServiceLevelHandler(
InternalTaskanaEngine taskanaEngine,
@ -49,6 +49,8 @@ class ServiceLevelHandler {
this.attachmentMapper = attachmentMapper;
WorkingDaysToDaysConverter.setGermanPublicHolidaysEnabled(
taskanaEngine.getEngine().getConfiguration().isGermanPublicHolidaysEnabled());
WorkingDaysToDaysConverter.setCorpusChristiEnabled(
taskanaEngine.getEngine().getConfiguration().isCorpusChristiEnabled());
this.converter = WorkingDaysToDaysConverter.initialize();
}

View File

@ -66,7 +66,7 @@ class TaskanaConfigAccTest extends TaskanaEngineImpl {
}
@Test
void testDoesNotExistPropertyClassificatioCategoryOrItIsEmpty() throws IOException {
void testDoesNotExistPropertyClassificationCategoryOrItIsEmpty() throws IOException {
taskanaEngineConfiguration.setClassificationTypes(new ArrayList<>());
taskanaEngineConfiguration.setClassificationCategoriesByType(new HashMap<>());
String propertiesFileName = createNewConfigFile("/dummyTestConfig.properties", true, false);

View File

@ -24,6 +24,21 @@ class TaskanaEngineTestConfigurationTest {
assertThat(te).isNotNull();
}
@Test
void should_SetCorpusChristiEnabled_When_PropertyIsSet() throws SQLException {
DataSource ds = TaskanaEngineTestConfiguration.getDataSource();
TaskanaEngineConfiguration taskEngineConfiguration =
new TaskanaEngineConfiguration(
ds,
false,
false,
"/corpusChristiEnabled.properties",
"|",
TaskanaEngineTestConfiguration.getSchemaName());
assertThat(taskEngineConfiguration.isCorpusChristiEnabled()).isTrue();
}
@Test
void should_returnTheTwoCustomHolidays_When_twoCustomHolidaysAreConfiguredInThePropertiesFile()
throws SQLException {

View File

@ -5,6 +5,8 @@ import static pro.taskana.common.internal.util.WorkingDaysToDaysConverter.getEas
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.stream.Stream;
import org.junit.jupiter.api.BeforeAll;
@ -28,6 +30,56 @@ class WorkingDaysToDaysConverterTest {
WorkingDaysToDaysConverter.setCustomHolidays(Arrays.asList(dayOfReformation, allSaintsDays));
}
void verifyCorpusChristiForDate(
WorkingDaysToDaysConverter converter,
String date,
boolean enableCorpsChristi,
boolean expected) {
WorkingDaysToDaysConverter.setCorpusChristiEnabled(enableCorpsChristi);
Instant referenceDay = Instant.parse(date);
converter.refreshReferenceDate(referenceDay);
assertThat(
converter.isGermanHoliday(
LocalDateTime.ofInstant(referenceDay, ZoneId.systemDefault()).toLocalDate()))
.isEqualTo(expected);
WorkingDaysToDaysConverter.setCorpusChristiEnabled(false);
}
@TestFactory
Stream<DynamicNode> should_DetectCorpusChristiAsHoliday_When_CorpusChristiIsEnabled() {
WorkingDaysToDaysConverter converter = WorkingDaysToDaysConverter.initialize();
DynamicContainer enabledCorpusChristi =
DynamicContainer.dynamicContainer(
"corpus christi is enabled",
Stream.of(
DynamicTest.dynamicTest(
"year 1980",
() ->
verifyCorpusChristiForDate(
converter, "1980-06-05T12:00:00.000Z", true, true)),
DynamicTest.dynamicTest(
"year 2020",
() ->
verifyCorpusChristiForDate(
converter, "2020-06-11T12:00:00.000Z", true, true))));
DynamicContainer disabledCorpusChristi =
DynamicContainer.dynamicContainer(
"corpus christi is enabled",
Stream.of(
DynamicTest.dynamicTest(
"year 1980",
() ->
verifyCorpusChristiForDate(
converter, "1980-06-05T12:00:00.000Z", false, false)),
DynamicTest.dynamicTest(
"year 2020",
() ->
verifyCorpusChristiForDate(
converter, "2020-06-11T12:00:00.000Z", false, false))));
return Stream.of(enabledCorpusChristi, disabledCorpusChristi);
}
@TestFactory
Stream<DynamicNode> testHasWorkingInBetween() throws InvalidArgumentException {
Instant referenceDay = Instant.parse("2020-02-01T07:00:00.000Z");

View File

@ -94,15 +94,16 @@ class CategoryReportBuilderImplTest {
.customAttributeFilterIn(customAttributeFilter)
.buildReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfCategories(any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -157,15 +158,16 @@ class CategoryReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfCategories(any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -226,16 +228,17 @@ class CategoryReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listTaskIdsForSelectedItems(selectedItems);
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskIdsForSelectedItems(
any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -299,15 +302,16 @@ class CategoryReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,

View File

@ -97,15 +97,17 @@ class ClassificationReportBuilderImplTest {
.customAttributeFilterIn(customAttributeFilter)
.buildReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -162,16 +164,17 @@ class ClassificationReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfClassifications(any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -226,15 +229,17 @@ class ClassificationReportBuilderImplTest {
.customAttributeFilterIn(customAttributeFilter)
.buildDetailedReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfDetailedClassifications(any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -294,15 +299,17 @@ class ClassificationReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildDetailedReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfDetailedClassifications(any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -369,16 +376,18 @@ class ClassificationReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listTaskIdsForSelectedItems(selectedItems);
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskIdsForSelectedItems(
any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -445,15 +454,17 @@ class ClassificationReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,

View File

@ -94,15 +94,16 @@ class CustomFieldValueReportBuilderImplTest {
.customAttributeFilterIn(customAttributeFilter)
.buildReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfigurationMock, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfigurationMock, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfigurationMock).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfigurationMock).isCorpusChristiEnabled();
verify(taskanaEngineConfigurationMock).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfCustomFieldValues(any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -158,15 +159,16 @@ class CustomFieldValueReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfigurationMock, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfigurationMock, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfigurationMock).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfigurationMock).isCorpusChristiEnabled();
verify(taskanaEngineConfigurationMock).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfCustomFieldValues(any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -222,15 +224,16 @@ class CustomFieldValueReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfigurationMock, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfigurationMock, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfigurationMock).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfigurationMock).isCorpusChristiEnabled();
verify(taskanaEngineConfigurationMock).getCustomHolidays();
verify(monitorMapperMock)
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,

View File

@ -105,15 +105,16 @@ class WorkbasketReportBuilderImplTest {
.combinedClassificationFilterIn(combinedClassificationFilter)
.buildReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfWorkbaskets(any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -176,15 +177,16 @@ class WorkbasketReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.buildReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfWorkbaskets(any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -247,16 +249,17 @@ class WorkbasketReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listTaskIdsForSelectedItems(selectedItems);
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskIdsForSelectedItems(
any(), any(), any(), any(), any(), any(), any(), any(), any(), eq(false));
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -324,15 +327,16 @@ class WorkbasketReportBuilderImplTest {
.withColumnHeaders(columnHeaders)
.listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1);
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(any());
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(any());
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getCustomAttributeValuesForReport(any(), any(), any(), any(), any(), any(), any(), any());
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,
@ -399,13 +403,14 @@ class WorkbasketReportBuilderImplTest {
.combinedClassificationFilterIn(combinedClassificationFilter)
.buildPlannedDateBasedReport();
verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(taskanaEngineMock, times(1)).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
verify(taskanaEngineMock, times(2)).getConfiguration();
verify(internalTaskanaEngineMock, times(3)).getEngine();
verify(taskanaEngineConfiguration, times(1)).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration, times(1)).getCustomHolidays();
verify(monitorMapperMock, times(1))
verify(internalTaskanaEngineMock).openConnection();
verify(taskanaEngineMock).checkRoleMembership(TaskanaRole.MONITOR, TaskanaRole.ADMIN);
verify(taskanaEngineMock).getConfiguration();
verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(taskanaEngineConfiguration).isGermanPublicHolidaysEnabled();
verify(taskanaEngineConfiguration).isCorpusChristiEnabled();
verify(taskanaEngineConfiguration).getCustomHolidays();
verify(monitorMapperMock)
.getTaskCountOfWorkbasketsBasedOnPlannedDate(
workbasketIds,
states,
@ -415,7 +420,7 @@ class WorkbasketReportBuilderImplTest {
excludedClassificationIds,
customAttributeFilter,
combinedClassificationFilter);
verify(internalTaskanaEngineMock, times(1)).returnConnection();
verify(internalTaskanaEngineMock).returnConnection();
verifyNoMoreInteractions(
internalTaskanaEngineMock,
taskanaEngineMock,

View File

@ -0,0 +1 @@
taskana.german.holidays.corpus-christi.enabled=true

View File

@ -1,15 +1 @@
taskana.roles.user=group1 | group2|teamlead_1 | teamlead_2 |user_1_1| user_1_1| user_1_2| user_2_1| user_2_2| max|elena|simone
taskana.roles.Admin=name=konrad,Organisation=novatec|admin
taskana.roles.businessadmin=max|Moritz|businessadmin
taskana.roles.monitor=john|teamlead_2 | monitor
taskana.domains=Domain_A , DOMAIN_B
taskana.classification.types=TASK , document
taskana.classification.categories.task=EXTERNAL, manual, autoMAtic, Process
taskana.classification.categories.document=EXTERNAL
taskana.jobs.maxRetries=3
taskana.jobs.batchSize=50
taskana.jobs.cleanup.runEvery=P1D
taskana.jobs.cleanup.firstRunAt=2018-07-25T08:00:00Z
taskana.jobs.cleanup.minimumAge=P14D
taskana.german.holidays.enabled=true
taskana.custom.holidays=31.07|16.12

View File

@ -1,15 +1 @@
taskana.roles.user=group1 | group2|teamlead_1 | teamlead_2 |user_1_1| user_1_1| user_1_2| user_2_1| user_2_2| max|elena|simone
taskana.roles.Admin=name=konrad,Organisation=novatec|admin
taskana.roles.businessadmin=max|Moritz|businessadmin
taskana.roles.monitor=john|teamlead_2 | monitor
taskana.domains=Domain_A , DOMAIN_B
taskana.classification.types=TASK , document
taskana.classification.categories.task=EXTERNAL, manual, autoMAtic, Process
taskana.classification.categories.document=EXTERNAL
taskana.jobs.maxRetries=3
taskana.jobs.batchSize=50
taskana.jobs.cleanup.runEvery=P1D
taskana.jobs.cleanup.firstRunAt=2018-07-25T08:00:00Z
taskana.jobs.cleanup.minimumAge=P14D
taskana.german.holidays.enabled=true
taskana.custom.holidays=31,07|1612

View File

@ -13,4 +13,5 @@ taskana.jobs.cleanup.runEvery=P1D
taskana.jobs.cleanup.firstRunAt=2018-07-25T08:00:00Z
taskana.jobs.cleanup.minimumAge=P14D
taskana.german.holidays.enabled=true
taskana.german.holidays.corpus-christi.enabled=false

View File

@ -14,3 +14,4 @@ taskana.jobs.cleanup.runEvery=P1D
taskana.jobs.cleanup.firstRunAt=2018-07-25T08:00:00Z
taskana.jobs.cleanup.minimumAge=P14D
taskana.german.holidays.enabled=true
taskana.german.holidays.corpus-christi.enabled=true