From 8752a00a85bf49b53a74228520a4ea6822ca7720 Mon Sep 17 00:00:00 2001 From: Mustapha Zorgati Date: Thu, 26 Dec 2019 00:14:35 +0100 Subject: [PATCH] TSK-990: minor refactoring --- .../configuration/DbSchemaCreator.java | 7 +- .../sampledata/SampleDataGenerator.java | 6 +- .../java/pro/taskana/configuration/DB.java | 20 ++-- .../configuration/DbSchemaCreator.java | 6 +- .../impl/DaysToWorkingDaysConverter.java | 107 +++++++++--------- .../test/java/acceptance/AbstractAccTest.java | 5 +- .../config/TaskanaConfigAccTest.java | 3 +- .../config/TaskanaRoleConfigAccTest.java | 3 +- .../jobs/TaskCleanupJobAccTest.java | 1 - .../report/AbstractReportAccTest.java | 8 +- .../acceptance/task/CallbackStateAccTest.java | 22 +--- .../acceptance/task/UpdateTaskAccTest.java | 3 +- .../impl/WorkbasketServiceImplTest.java | 57 +++++----- .../TaskanaEngineTestConfigurationTest.java | 4 +- ...ificationServiceImplIntAutoCommitTest.java | 8 +- ...ssificationServiceImplIntExplicitTest.java | 5 +- .../TaskServiceImplIntAutocommitTest.java | 7 +- .../TaskServiceImplIntExplicitTest.java | 9 +- ...orkbasketServiceImplIntAutocommitTest.java | 5 +- .../WorkbasketServiceImplIntExplicitTest.java | 5 +- .../pro/taskana/mappings/TaskTestMapper.java | 7 +- .../pro/taskana/sampledata/SQLReplacer.java | 2 +- .../sampledata/SampleDataGenerator.java | 4 +- 23 files changed, 144 insertions(+), 160 deletions(-) diff --git a/history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/configuration/DbSchemaCreator.java b/history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/configuration/DbSchemaCreator.java index be3cadb56..770a9e096 100644 --- a/history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/configuration/DbSchemaCreator.java +++ b/history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/configuration/DbSchemaCreator.java @@ -50,8 +50,7 @@ public class DbSchemaCreator { runner.setLogWriter(logWriter); runner.setErrorLogWriter(errorLogWriter); try { - InputStream resourceAsStream = this.getClass() - .getResourceAsStream(DB_SCHEMA); + InputStream resourceAsStream = this.getClass().getResourceAsStream(DB_SCHEMA); BufferedReader reader = new BufferedReader(new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8)); runner.runScript(getSqlWithSchemaNameParsed(reader)); } finally { @@ -64,13 +63,13 @@ public class DbSchemaCreator { } private StringReader getSqlWithSchemaNameParsed(BufferedReader reader) { - StringBuffer content = new StringBuffer(); + StringBuilder content = new StringBuilder(); try { String line = ""; while (line != null) { line = reader.readLine(); if (line != null) { - content.append(line.replaceAll("%schemaName%", schemaName) + System.lineSeparator()); + content.append(line.replaceAll("%schemaName%", schemaName)).append(System.lineSeparator()); } } } catch (IOException e) { diff --git a/history/taskana-simplehistory-rest-spring/src/main/java/pro/taskana/rest/simplehistory/sampledata/SampleDataGenerator.java b/history/taskana-simplehistory-rest-spring/src/main/java/pro/taskana/rest/simplehistory/sampledata/SampleDataGenerator.java index f925c15fc..6719ddec4 100644 --- a/history/taskana-simplehistory-rest-spring/src/main/java/pro/taskana/rest/simplehistory/sampledata/SampleDataGenerator.java +++ b/history/taskana-simplehistory-rest-spring/src/main/java/pro/taskana/rest/simplehistory/sampledata/SampleDataGenerator.java @@ -15,6 +15,8 @@ import org.apache.ibatis.jdbc.ScriptRunner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import pro.taskana.configuration.DB; + /** * This class generates sample data for manual testing purposes. */ @@ -54,7 +56,7 @@ public class SampleDataGenerator { runner.runScript(new BufferedReader( new InputStreamReader(this.getClass().getResourceAsStream(CLEAR), StandardCharsets.UTF_8))); } catch (Exception e) { - LOGGER.error("caught Exception {}", e); + LOGGER.error("caught Exception {}", e, e); } runner.setStopOnError(true); @@ -73,7 +75,7 @@ public class SampleDataGenerator { } private StringReader selectSchemaScript(String dbProductName, String schemaName) { - return new StringReader("PostgreSQL".equals(dbProductName) + return new StringReader(DB.isPostgreSQL(dbProductName) ? "SET search_path TO " + schemaName + ";" : "SET SCHEMA " + schemaName + ";"); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/configuration/DB.java b/lib/taskana-core/src/main/java/pro/taskana/configuration/DB.java index e5c2a00c6..7ba3c5148 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/configuration/DB.java +++ b/lib/taskana-core/src/main/java/pro/taskana/configuration/DB.java @@ -20,27 +20,27 @@ public enum DB { } public static boolean isDb2(String dbProductName) { - return dbProductName.contains(DB2.dbProductname); + return dbProductName != null && dbProductName.contains(DB2.dbProductname); } - public static boolean isH2(String databaseProductName) { - return databaseProductName.contains(H2.dbProductname); + public static boolean isH2(String dbProductName) { + return dbProductName != null && dbProductName.contains(H2.dbProductname); } - public static boolean isPostgreSQL(String databaseProductName) { - return POSTGRESS.dbProductname.equals(databaseProductName); + public static boolean isPostgreSQL(String dbProductName) { + return POSTGRESS.dbProductname.equals(dbProductName); } - public static String getDatabaseProductId(String databaseProductName) { + public static String getDatabaseProductId(String dbProductName) { - if (isDb2(databaseProductName)) { + if (isDb2(dbProductName)) { return DB2.dbProductId; - } else if (isH2(databaseProductName)) { + } else if (isH2(dbProductName)) { return H2.dbProductId; - } else if (isPostgreSQL(databaseProductName)) { + } else if (isPostgreSQL(dbProductName)) { return POSTGRESS.dbProductId; } else { - throw new UnsupportedDatabaseException(databaseProductName); + throw new UnsupportedDatabaseException(dbProductName); } } } diff --git a/lib/taskana-core/src/main/java/pro/taskana/configuration/DbSchemaCreator.java b/lib/taskana-core/src/main/java/pro/taskana/configuration/DbSchemaCreator.java index 588999930..8ad5dc04e 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/configuration/DbSchemaCreator.java +++ b/lib/taskana-core/src/main/java/pro/taskana/configuration/DbSchemaCreator.java @@ -69,8 +69,7 @@ public class DbSchemaCreator { try { if (!isSchemaPreexisting(connection)) { String scriptPath = selectDbScriptFileName(connection.getMetaData().getDatabaseProductName()); - InputStream resourceAsStream = this.getClass() - .getResourceAsStream(scriptPath); + InputStream resourceAsStream = this.getClass().getResourceAsStream(scriptPath); BufferedReader reader = new BufferedReader( new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8)); runner.runScript(getSqlSchemaNameParsed(reader)); @@ -98,8 +97,7 @@ public class DbSchemaCreator { runner.setErrorLogWriter(new PrintWriter(errorWriter)); try { String scriptPath = selectDbSchemaDetectionScript(connection.getMetaData().getDatabaseProductName()); - InputStream resourceAsStream = this.getClass() - .getResourceAsStream(scriptPath); + InputStream resourceAsStream = this.getClass().getResourceAsStream(scriptPath); BufferedReader reader = new BufferedReader(new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8)); runner.runScript(getSqlSchemaNameParsed(reader)); } catch (Exception e) { diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/DaysToWorkingDaysConverter.java b/lib/taskana-core/src/main/java/pro/taskana/impl/DaysToWorkingDaysConverter.java index 3092a8e3a..f115f6339 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/DaysToWorkingDaysConverter.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/DaysToWorkingDaysConverter.java @@ -48,8 +48,7 @@ public final class DaysToWorkingDaysConverter { negativeDaysToWorkingDays = generateNegativeDaysToWorkingDays(columnHeaders, referenceDate); } - public static DaysToWorkingDaysConverter initialize() - throws InvalidArgumentException { + public static DaysToWorkingDaysConverter initialize() throws InvalidArgumentException { return initialize(Collections.singletonList(new TimeIntervalColumnHeader(0)), Instant.now()); } @@ -95,6 +94,39 @@ public final class DaysToWorkingDaysConverter { germanHolidaysEnabled = germanPublicHolidaysEnabled; } + /** + * Computes the date of Easter Sunday for a given year. + * + * @param year for which the date of Easter Sunday should be calculated + * @return the date of Easter Sunday for the given year + */ + static LocalDate getEasterSunday(int year) { + // Formula to compute Easter Sunday by Gauss. + int a = year % 19; + int b = year % 4; + int c = year % 7; + int k = year / 100; + int p = (13 + 8 * k) / 25; + int q = k / 4; + int m = (15 - p + k - q) % 30; + int n = (4 + k - q) % 7; + int d = (19 * a + m) % 30; + + int e = (2 * b + 4 * c + 6 * d + n) % 7; + + if (d == 29 && e == 6) { + return LocalDate.of(year, 3, 15).plusDays(d + e); + } + if (d == 28 && e == 6 && (11 * m + 11) % 30 < 19) { + return LocalDate.of(year, 3, 15).plusDays(d + e); + } + return LocalDate.of(year, 3, 22).plusDays(d + e); + } + + public static void setCustomHolidays(List holidays) { + customHolidays = new HashSet<>(holidays == null ? Collections.emptyList() : holidays); + } + /** * Converts an integer, that represents the age in days, to the age in working days by using the table that was * created by initialization. If the age in days is beyond the limits of the table, the integer will be returned @@ -248,39 +280,6 @@ public final class DaysToWorkingDaysConverter { .anyMatch(diff -> diff == diffFromEasterSunday); } - /** - * Computes the date of Easter Sunday for a given year. - * - * @param year for which the date of Easter Sunday should be calculated - * @return the date of Easter Sunday for the given year - */ - static LocalDate getEasterSunday(int year) { - // Formula to compute Easter Sunday by Gauss. - int a = year % 19; - int b = year % 4; - int c = year % 7; - int k = year / 100; - int p = (13 + 8 * k) / 25; - int q = k / 4; - int m = (15 - p + k - q) % 30; - int n = (4 + k - q) % 7; - int d = (19 * a + m) % 30; - - int e = (2 * b + 4 * c + 6 * d + n) % 7; - - if (d == 29 && e == 6) { - return LocalDate.of(year, 3, 15).plusDays(d + e); - } - if (d == 28 && e == 6 && (11 * m + 11) % 30 < 19) { - return LocalDate.of(year, 3, 15).plusDays(d + e); - } - return LocalDate.of(year, 3, 22).plusDays(d + e); - } - - public static void setCustomHolidays(List holidays) { - customHolidays = new HashSet<>(holidays == null ? Collections.emptyList() : holidays); - } - @Override public String toString() { return "DaysToWorkingDaysConverter{" @@ -291,6 +290,25 @@ public final class DaysToWorkingDaysConverter { + '}'; } + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DaysToWorkingDaysConverter that = (DaysToWorkingDaysConverter) o; + return positiveDaysToWorkingDays.equals(that.positiveDaysToWorkingDays) + && negativeDaysToWorkingDays.equals(that.negativeDaysToWorkingDays) + && dateCreated.equals(that.dateCreated); + } + + @Override + public int hashCode() { + return Objects.hash(positiveDaysToWorkingDays, negativeDaysToWorkingDays, dateCreated); + } + /** * Enumeration of German holidays. */ @@ -313,23 +331,4 @@ public final class DaysToWorkingDaysConverter { return date.getDayOfMonth() == day && date.getMonthValue() == month; } } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DaysToWorkingDaysConverter that = (DaysToWorkingDaysConverter) o; - return positiveDaysToWorkingDays.equals(that.positiveDaysToWorkingDays) - && negativeDaysToWorkingDays.equals(that.negativeDaysToWorkingDays) - && dateCreated.equals(that.dateCreated); - } - - @Override - public int hashCode() { - return Objects.hash(positiveDaysToWorkingDays, negativeDaysToWorkingDays, dateCreated); - } } diff --git a/lib/taskana-core/src/test/java/acceptance/AbstractAccTest.java b/lib/taskana-core/src/test/java/acceptance/AbstractAccTest.java index 6048ce30f..f0057778e 100644 --- a/lib/taskana-core/src/test/java/acceptance/AbstractAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/AbstractAccTest.java @@ -19,6 +19,7 @@ import pro.taskana.ObjectReference; import pro.taskana.TaskanaEngine; import pro.taskana.TaskanaEngine.ConnectionManagementMode; import pro.taskana.TimeInterval; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; import pro.taskana.sampledata.SampleDataGenerator; @@ -28,7 +29,7 @@ import pro.taskana.sampledata.SampleDataGenerator; */ public abstract class AbstractAccTest { - protected static pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; + protected static TaskanaEngineConfiguration taskanaEngineConfiguration; protected static TaskanaEngine taskanaEngine; @BeforeAll @@ -44,7 +45,7 @@ public abstract class AbstractAccTest { sampleDataGenerator.dropDb(); } dataSource = TaskanaEngineTestConfiguration.getDataSource(); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, schemaName); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT); diff --git a/lib/taskana-core/src/test/java/acceptance/config/TaskanaConfigAccTest.java b/lib/taskana-core/src/test/java/acceptance/config/TaskanaConfigAccTest.java index 196b2f394..49d8f28e2 100644 --- a/lib/taskana-core/src/test/java/acceptance/config/TaskanaConfigAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/config/TaskanaConfigAccTest.java @@ -15,6 +15,7 @@ import java.util.HashMap; import org.h2.store.fs.FileUtils; import org.junit.jupiter.api.Test; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.impl.TaskanaEngineImpl; import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; @@ -26,7 +27,7 @@ import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; class TaskanaConfigAccTest extends TaskanaEngineImpl { TaskanaConfigAccTest() throws SQLException { - super(new pro.taskana.configuration.TaskanaEngineConfiguration(TaskanaEngineTestConfiguration.getDataSource(), + super(new TaskanaEngineConfiguration(TaskanaEngineTestConfiguration.getDataSource(), true, TaskanaEngineTestConfiguration.getSchemaName())); } diff --git a/lib/taskana-core/src/test/java/acceptance/config/TaskanaRoleConfigAccTest.java b/lib/taskana-core/src/test/java/acceptance/config/TaskanaRoleConfigAccTest.java index 8abad1351..344a5a0e5 100644 --- a/lib/taskana-core/src/test/java/acceptance/config/TaskanaRoleConfigAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/config/TaskanaRoleConfigAccTest.java @@ -12,6 +12,7 @@ import org.h2.store.fs.FileUtils; import org.junit.jupiter.api.Test; import pro.taskana.TaskanaRole; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.impl.TaskanaEngineImpl; import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; @@ -23,7 +24,7 @@ import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; class TaskanaRoleConfigAccTest extends TaskanaEngineImpl { TaskanaRoleConfigAccTest() throws SQLException { - super(new pro.taskana.configuration.TaskanaEngineConfiguration(TaskanaEngineTestConfiguration.getDataSource(), + super(new TaskanaEngineConfiguration(TaskanaEngineTestConfiguration.getDataSource(), true, TaskanaEngineTestConfiguration.getSchemaName())); } diff --git a/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java b/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java index b341ab062..278646067 100644 --- a/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java @@ -40,7 +40,6 @@ class TaskCleanupJobAccTest extends AbstractAccTest { //required if single tests modify database //TODO split test class into readOnly & modifying tests to improve performance resetDb(false); - resetDb(false); taskService = taskanaEngine.getTaskService(); } diff --git a/lib/taskana-core/src/test/java/acceptance/report/AbstractReportAccTest.java b/lib/taskana-core/src/test/java/acceptance/report/AbstractReportAccTest.java index 5f33eb56e..8bc6c241a 100644 --- a/lib/taskana-core/src/test/java/acceptance/report/AbstractReportAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/report/AbstractReportAccTest.java @@ -1,6 +1,5 @@ package acceptance.report; -import java.io.IOException; import java.sql.SQLException; import javax.sql.DataSource; @@ -8,6 +7,7 @@ import javax.sql.DataSource; import org.junit.jupiter.api.BeforeAll; import pro.taskana.TaskanaEngine; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; import pro.taskana.sampledata.SampleDataGenerator; @@ -16,7 +16,7 @@ import pro.taskana.sampledata.SampleDataGenerator; */ public class AbstractReportAccTest { - protected static pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; + protected static TaskanaEngineConfiguration taskanaEngineConfiguration; protected static TaskanaEngine taskanaEngine; // checkstyle needs this constructor, since this is only a "utility" class @@ -28,11 +28,11 @@ public class AbstractReportAccTest { resetDb(); } - private static void resetDb() throws SQLException, IOException { + private static void resetDb() throws SQLException { DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); SampleDataGenerator sampleDataGenerator = new SampleDataGenerator(dataSource, schemaName); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, schemaName); taskanaEngineConfiguration.setGermanPublicHolidaysEnabled(false); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); diff --git a/lib/taskana-core/src/test/java/acceptance/task/CallbackStateAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/CallbackStateAccTest.java index 1b22971e5..0e9c2669a 100644 --- a/lib/taskana-core/src/test/java/acceptance/task/CallbackStateAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/task/CallbackStateAccTest.java @@ -1,17 +1,9 @@ package acceptance.task; -<<<<<<< master -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -======= import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; ->>>>>>> TSK-983: Remove junit 4 from taskana-core -import java.io.IOException; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -222,7 +214,6 @@ class CallbackStateAccTest extends AbstractAccTest { List externalIds = new ArrayList<>( Arrays.asList(createdTask1.getExternalId(), createdTask2.getExternalId(), createdTask3.getExternalId())); - //complete a task createdTask3 = (TaskImpl) taskService.forceCompleteTask(createdTask3.getId()); @@ -258,7 +249,6 @@ class CallbackStateAccTest extends AbstractAccTest { List externalIds = new ArrayList<>( Arrays.asList(createdTask1.getExternalId(), createdTask2.getExternalId(), createdTask3.getExternalId())); - //claim two tasks createdTask1 = (TaskImpl) taskService.forceClaim(createdTask1.getId()); createdTask2 = (TaskImpl) taskService.forceClaim(createdTask2.getId()); @@ -281,7 +271,6 @@ class CallbackStateAccTest extends AbstractAccTest { throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException, TaskAlreadyExistException, InvalidArgumentException { - TaskService taskService = taskanaEngine.getTaskService(); TaskImpl createdTask1 = createTask(taskService, CallbackState.CALLBACK_PROCESSING_REQUIRED); @@ -296,7 +285,6 @@ class CallbackStateAccTest extends AbstractAccTest { List externalIds = new ArrayList<>( Arrays.asList(createdTask1.getExternalId(), createdTask2.getExternalId(), createdTask3.getExternalId())); - //It's only allowed to set the CallbackState to REQUIRED if the TaskState doesn't equal COMPLETE //Therefore 1 task should not get updated BulkOperationResults bulkResult = taskService.setCallbackStateForTasks(externalIds, @@ -311,15 +299,7 @@ class CallbackStateAccTest extends AbstractAccTest { userName = "admin", groupNames = {"group_1"}) @Test - void testQueriesWithCallbackState() -<<<<<<< master - throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException, - TaskAlreadyExistException, InvalidArgumentException, TaskNotFoundException, InvalidStateException, -======= - throws NotAuthorizedException, - TaskNotFoundException, InvalidStateException, ->>>>>>> TSK-983: Remove junit 4 from taskana-core - InvalidOwnerException, SQLException, IOException { + void testQueriesWithCallbackState() throws Exception { resetDb(false); TaskService taskService = taskanaEngine.getTaskService(); diff --git a/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAccTest.java index 47c6484b1..135e90516 100644 --- a/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/task/UpdateTaskAccTest.java @@ -120,8 +120,7 @@ class UpdateTaskAccTest extends AbstractAccTest { Task task2 = taskService.getTask("TKI:000000000000000000000000000000000000"); task.setCustomAttribute("1", "willi"); - Task updatedTask = taskService.updateTask(task); - taskService.getTask(updatedTask.getId()); + taskService.updateTask(task); task2.setCustomAttribute("2", "Walter"); //TODO flaky test ... if speed is too high, diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketServiceImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketServiceImplTest.java index 0963ca02e..148e25130 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketServiceImplTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketServiceImplTest.java @@ -5,8 +5,8 @@ import static org.hamcrest.Matchers.startsWith; import static org.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsNot.not; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -14,6 +14,7 @@ import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import org.junit.jupiter.api.Assertions; @@ -52,7 +53,7 @@ class WorkbasketServiceImplTest { @Spy @InjectMocks - private WorkbasketServiceImpl cutSpy; + private WorkbasketServiceImpl workbasketServiceSpy; @Mock private WorkbasketMapper workbasketMapperMock; @@ -89,15 +90,16 @@ class WorkbasketServiceImplTest { WorkbasketAlreadyExistException, DomainNotFoundException { final int distTargetAmount = 2; WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1"); - doReturn(expectedWb).when(cutSpy).getWorkbasket(any()); + doReturn(expectedWb).when(workbasketServiceSpy).getWorkbasket(any()); when(internalTaskanaEngineMock.domainExists(any())).thenReturn(true); - Workbasket actualWb = cutSpy.createWorkbasket(expectedWb); - cutSpy.setDistributionTargets(expectedWb.getId(), createTestDistributionTargets(distTargetAmount)); + Workbasket actualWb = workbasketServiceSpy.createWorkbasket(expectedWb); + workbasketServiceSpy.setDistributionTargets(expectedWb.getId(), + createTestDistributionTargets(distTargetAmount)); verify(internalTaskanaEngineMock, times(4)).openConnection(); verify(workbasketMapperMock, times(3)).insert(any()); - verify(cutSpy, times(distTargetAmount + 1)).getWorkbasket(any()); + verify(workbasketServiceSpy, times(distTargetAmount + 1)).getWorkbasket(any()); verify(distributionTargetMapperMock, times(1)).deleteAllDistributionTargetsBySourceId(any()); verify(distributionTargetMapperMock, times(distTargetAmount)).insert(any(), any()); verify(workbasketMapperMock, times(3)).findByKeyAndDomain(any(), any()); @@ -116,35 +118,35 @@ class WorkbasketServiceImplTest { } @Test - void testCreateWorkbasket_DistibutionTargetNotExisting() - throws NotAuthorizedException, WorkbasketNotFoundException { + void testCreateWorkbasket_DistibutionTargetNotExisting() throws Exception { WorkbasketImpl expectedWb = createTestWorkbasket("ID-1", "Key-1"); when(internalTaskanaEngineMock.domainExists(any())).thenReturn(true); + String otherWorkbasketId = "4711"; + List destinations = Collections.singletonList(otherWorkbasketId); + workbasketServiceSpy.createWorkbasket(expectedWb); + doReturn(expectedWb).when(workbasketServiceSpy).getWorkbasket(eq(expectedWb.getId())); WorkbasketNotFoundException e = Assertions.assertThrows( - WorkbasketNotFoundException.class, () -> { - cutSpy.createWorkbasket(expectedWb); - String id1 = "4711"; - List destinations = new ArrayList<>(Arrays.asList(id1)); - cutSpy.setDistributionTargets(expectedWb.getId(), destinations); - doThrow(WorkbasketNotFoundException.class).when(cutSpy) - .getDistributionTargets(expectedWb.getId()) - .get(0); + WorkbasketNotFoundException.class, + () -> workbasketServiceSpy.setDistributionTargets(expectedWb.getId(), destinations)); - }); + Assertions.assertEquals(e.getId(), otherWorkbasketId); + Assertions.assertNull(e.getKey()); + Assertions.assertNull(e.getDomain()); verify(internalTaskanaEngineMock, times(3)).openConnection(); verify(workbasketMapperMock, times(1)).insert(expectedWb); verify(workbasketMapperMock, times(1)).findById(any()); verify(workbasketMapperMock, times(1)).findByKeyAndDomain(any(), any()); - verify(cutSpy, times(1)).getWorkbasket(any()); + verify(workbasketServiceSpy, times(2)).getWorkbasket(any()); verify(internalTaskanaEngineMock, times(3)).returnConnection(); verify(taskanaEngine, times(2)).checkRoleMembership(any()); verify(internalTaskanaEngineMock, times(2)).getEngine(); verify(internalTaskanaEngineMock, times(1)).domainExists(any()); + verify(distributionTargetMapperMock).deleteAllDistributionTargetsBySourceId(eq(expectedWb.getId())); + verify(workbasketMapperMock).update(eq(expectedWb)); verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock, - distributionTargetMapperMock, - internalTaskanaEngineMock, taskanaEngine, taskanaEngineConfigurationMock); + distributionTargetMapperMock, internalTaskanaEngineMock, taskanaEngine, taskanaEngineConfigurationMock); } @@ -155,9 +157,8 @@ class WorkbasketServiceImplTest { WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1"); when(workbasketMapperMock.findById(any())).thenThrow(WorkbasketNotFoundException.class); - WorkbasketNotFoundException e = Assertions.assertThrows( - WorkbasketNotFoundException.class, () -> - cutSpy.createWorkbasket(expectedWb)); + Assertions.assertThrows( + WorkbasketNotFoundException.class, () -> workbasketServiceSpy.createWorkbasket(expectedWb)); verify(internalTaskanaEngineMock, times(1)).openConnection(); verify(workbasketMapperMock, times(1)).insert(expectedWb); @@ -176,11 +177,11 @@ class WorkbasketServiceImplTest { List usages = Arrays.asList(new TaskSummaryImpl(), new TaskSummaryImpl()); WorkbasketNotFoundException e = Assertions.assertThrows( - WorkbasketNotFoundException.class, () -> - cutSpy.deleteWorkbasket(wb.getId())); + WorkbasketNotFoundException.class, + () -> workbasketServiceSpy.deleteWorkbasket(wb.getId())); verify(internalTaskanaEngineMock, times(2)).openConnection(); - verify(cutSpy, times(1)).getWorkbasket(wb.getId()); + verify(workbasketServiceSpy, times(1)).getWorkbasket(wb.getId()); verify(taskanaEngine, times(0)).getTaskService(); verify(taskServiceMock, times(0)).createTaskQuery(); verify(taskQueryMock, times(0)).workbasketIdIn(wb.getId()); @@ -205,10 +206,10 @@ class WorkbasketServiceImplTest { throws InvalidWorkbasketException, NotAuthorizedException, WorkbasketAlreadyExistException, DomainNotFoundException { List distributionsTargets = new ArrayList<>(); - amount = (amount < 0) ? 0 : amount; + amount = Math.max(amount, 0); for (int i = 0; i < amount; i++) { WorkbasketImpl wb = createTestWorkbasket("WB-ID-" + i, "WB-KEY-" + i); - cutSpy.createWorkbasket(wb); + workbasketServiceSpy.createWorkbasket(wb); distributionsTargets.add(wb.getId()); } return distributionsTargets; diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/configuration/TaskanaEngineTestConfigurationTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/configuration/TaskanaEngineTestConfigurationTest.java index a170e509e..e1537a38a 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/configuration/TaskanaEngineTestConfigurationTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/configuration/TaskanaEngineTestConfigurationTest.java @@ -9,6 +9,7 @@ import javax.sql.DataSource; import org.junit.jupiter.api.Test; import pro.taskana.TaskanaEngine; +import pro.taskana.configuration.TaskanaEngineConfiguration; /** * Test of configuration. @@ -18,8 +19,7 @@ class TaskanaEngineTestConfigurationTest { @Test void testCreateTaskanaEngine() throws SQLException { DataSource ds = TaskanaEngineTestConfiguration.getDataSource(); - pro.taskana.configuration.TaskanaEngineConfiguration taskEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration( - ds, false, + TaskanaEngineConfiguration taskEngineConfiguration = new TaskanaEngineConfiguration(ds, false, TaskanaEngineTestConfiguration.getSchemaName()); TaskanaEngine te = taskEngineConfiguration.buildTaskanaEngine(); diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/ClassificationServiceImplIntAutoCommitTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/ClassificationServiceImplIntAutoCommitTest.java index c096666f6..438d132c5 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/ClassificationServiceImplIntAutoCommitTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/ClassificationServiceImplIntAutoCommitTest.java @@ -24,6 +24,7 @@ import pro.taskana.ClassificationSummary; import pro.taskana.TaskanaEngine; import pro.taskana.TaskanaEngine.ConnectionManagementMode; import pro.taskana.TimeInterval; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ConcurrencyException; @@ -44,7 +45,7 @@ class ClassificationServiceImplIntAutoCommitTest { static int counter = 0; private DataSource dataSource; private ClassificationService classificationService; - private pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; + private TaskanaEngineConfiguration taskanaEngineConfiguration; private TaskanaEngine taskanaEngine; private TaskanaEngineImpl taskanaEngineImpl; @@ -59,14 +60,13 @@ class ClassificationServiceImplIntAutoCommitTest { void setup() throws SQLException { dataSource = TaskanaEngineTestConfiguration.getDataSource(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, false, + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, false, schemaName); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); classificationService = taskanaEngine.getClassificationService(); taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine; taskanaEngineImpl.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT); - SampleDataGenerator sampleDataGenerator = new SampleDataGenerator(dataSource, schemaName); - sampleDataGenerator.clearDb(); + new SampleDataGenerator(dataSource, schemaName).clearDb(); } @Test diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/ClassificationServiceImplIntExplicitTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/ClassificationServiceImplIntExplicitTest.java index 2a7eb1e96..aa9c6103d 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/ClassificationServiceImplIntExplicitTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/ClassificationServiceImplIntExplicitTest.java @@ -29,6 +29,7 @@ import pro.taskana.ClassificationSummary; import pro.taskana.TaskanaEngine; import pro.taskana.TaskanaEngine.ConnectionManagementMode; import pro.taskana.TimeInterval; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ConcurrencyException; @@ -52,7 +53,7 @@ public class ClassificationServiceImplIntExplicitTest { static int counter = 0; private DataSource dataSource; private ClassificationService classificationService; - private pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; + private TaskanaEngineConfiguration taskanaEngineConfiguration; private TaskanaEngine taskanaEngine; private TaskanaEngineImpl taskanaEngineImpl; @@ -67,7 +68,7 @@ public class ClassificationServiceImplIntExplicitTest { public void setup() throws SQLException { dataSource = TaskanaEngineTestConfiguration.getDataSource(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, false, + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, false, schemaName); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); classificationService = taskanaEngine.getClassificationService(); diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/TaskServiceImplIntAutocommitTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/TaskServiceImplIntAutocommitTest.java index ddf5a03b1..5d93a73d2 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/TaskServiceImplIntAutocommitTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/TaskServiceImplIntAutocommitTest.java @@ -30,6 +30,7 @@ import pro.taskana.Workbasket; import pro.taskana.WorkbasketAccessItem; import pro.taskana.WorkbasketService; import pro.taskana.WorkbasketType; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.DomainNotFoundException; @@ -67,7 +68,7 @@ class TaskServiceImplIntAutocommitTest { private TaskServiceImpl taskServiceImpl; - private pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; + private TaskanaEngineConfiguration taskanaEngineConfiguration; private TaskanaEngine taskanaEngine; @@ -81,7 +82,7 @@ class TaskServiceImplIntAutocommitTest { void setup() throws SQLException { dataSource = TaskanaEngineTestConfiguration.getDataSource(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, false, + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, false, schemaName); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); @@ -267,7 +268,7 @@ class TaskServiceImplIntAutocommitTest { // Set up Security for this Test dataSource = TaskanaEngineTestConfiguration.getDataSource(); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, true, + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, true, TaskanaEngineTestConfiguration.getSchemaName()); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine; diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/TaskServiceImplIntExplicitTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/TaskServiceImplIntExplicitTest.java index e5a6e6a9d..11d02facc 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/TaskServiceImplIntExplicitTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/TaskServiceImplIntExplicitTest.java @@ -35,6 +35,7 @@ import pro.taskana.WorkbasketAccessItem; import pro.taskana.WorkbasketService; import pro.taskana.WorkbasketType; import pro.taskana.configuration.DbSchemaCreator; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.DomainNotFoundException; @@ -73,7 +74,7 @@ class TaskServiceImplIntExplicitTest { private static TaskServiceImpl taskServiceImpl; - private static pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; + private static TaskanaEngineConfiguration taskanaEngineConfiguration; private static TaskanaEngine taskanaEngine; @@ -90,8 +91,8 @@ class TaskServiceImplIntExplicitTest { dataSource = new File(propertiesFileName).exists() ? TaskanaEngineTestConfiguration.createDataSourceFromProperties(propertiesFileName) - : pro.taskana.configuration.TaskanaEngineConfiguration.createDefaultDataSource(); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, + : TaskanaEngineConfiguration.createDefaultDataSource(); + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, TaskanaEngineTestConfiguration.getSchemaName()); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskServiceImpl = (TaskServiceImpl) taskanaEngine.getTaskService(); @@ -362,7 +363,7 @@ class TaskServiceImplIntExplicitTest { // Set up Security for this Test dataSource = TaskanaEngineTestConfiguration.getDataSource(); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, true, + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, true, TaskanaEngineTestConfiguration.getSchemaName()); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine; diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntAutocommitTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntAutocommitTest.java index 4cf0163ef..3e3d3693b 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntAutocommitTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntAutocommitTest.java @@ -31,6 +31,7 @@ import pro.taskana.WorkbasketAccessItem; import pro.taskana.WorkbasketService; import pro.taskana.WorkbasketSummary; import pro.taskana.WorkbasketType; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.exceptions.DomainNotFoundException; import pro.taskana.exceptions.InvalidArgumentException; import pro.taskana.exceptions.InvalidWorkbasketException; @@ -70,7 +71,7 @@ class WorkbasketServiceImplIntAutocommitTest { void setup() throws SQLException { DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); - pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration( + TaskanaEngineConfiguration taskanaEngineConfiguration = new TaskanaEngineConfiguration( dataSource, false, schemaName); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); @@ -176,7 +177,7 @@ class WorkbasketServiceImplIntAutocommitTest { accessItem.setPermAppend(true); workBasketService.updateWorkbasketAccessItem(accessItem); - if (pro.taskana.configuration.TaskanaEngineConfiguration.shouldUseLowerCaseForAccessIds()) { + if (TaskanaEngineConfiguration.shouldUseLowerCaseForAccessIds()) { assertEquals("zaphod beeblebrox", accessItem.getAccessId()); } else { assertEquals("Zaphod Beeblebrox", accessItem.getAccessId()); diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntExplicitTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntExplicitTest.java index 6ae4d4c5a..89b8e2701 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntExplicitTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/integration/WorkbasketServiceImplIntExplicitTest.java @@ -24,6 +24,7 @@ import pro.taskana.WorkbasketAccessItem; import pro.taskana.WorkbasketService; import pro.taskana.WorkbasketSummary; import pro.taskana.WorkbasketType; +import pro.taskana.configuration.TaskanaEngineConfiguration; import pro.taskana.exceptions.DomainNotFoundException; import pro.taskana.exceptions.InvalidArgumentException; import pro.taskana.exceptions.InvalidWorkbasketException; @@ -49,7 +50,7 @@ class WorkbasketServiceImplIntExplicitTest { private static final int SLEEP_TIME = 100; static int counter = 0; private DataSource dataSource; - private pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; + private TaskanaEngineConfiguration taskanaEngineConfiguration; private TaskanaEngine taskanaEngine; private TaskanaEngineImpl taskanaEngineImpl; private WorkbasketService workBasketService; @@ -65,7 +66,7 @@ class WorkbasketServiceImplIntExplicitTest { void setup() throws SQLException { dataSource = TaskanaEngineTestConfiguration.getDataSource(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); - taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, + taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, schemaName); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine; diff --git a/lib/taskana-core/src/test/java/pro/taskana/mappings/TaskTestMapper.java b/lib/taskana-core/src/test/java/pro/taskana/mappings/TaskTestMapper.java index 28cc0df63..8e81eb405 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/mappings/TaskTestMapper.java +++ b/lib/taskana-core/src/test/java/pro/taskana/mappings/TaskTestMapper.java @@ -24,10 +24,9 @@ public interface TaskTestMapper { }) String getCustomAttributesAsString(@Param("taskId") String taskId); - @Select( - "SELECT ID, CREATED, CLAIMED, COMPLETED, MODIFIED, PLANNED, DUE, NAME, CREATOR, DESCRIPTION, NOTE, PRIORITY, STATE, CLASSIFICATION_CATEGORY, CLASSIFICATION_KEY, CLASSIFICATION_ID, WORKBASKET_ID, WORKBASKET_KEY, DOMAIN, BUSINESS_PROCESS_ID, PARENT_BUSINESS_PROCESS_ID, OWNER, POR_COMPANY, POR_SYSTEM, POR_INSTANCE, POR_TYPE, POR_VALUE, IS_READ, IS_TRANSFERRED, CUSTOM_ATTRIBUTES, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, CUSTOM_10 " - + "FROM TASK " - + "WHERE CUSTOM_ATTRIBUTES like #{searchText}") + @Select("SELECT ID, CREATED, CLAIMED, COMPLETED, MODIFIED, PLANNED, DUE, NAME, CREATOR, DESCRIPTION, NOTE, PRIORITY, STATE, CLASSIFICATION_CATEGORY, CLASSIFICATION_KEY, CLASSIFICATION_ID, WORKBASKET_ID, WORKBASKET_KEY, DOMAIN, BUSINESS_PROCESS_ID, PARENT_BUSINESS_PROCESS_ID, OWNER, POR_COMPANY, POR_SYSTEM, POR_INSTANCE, POR_TYPE, POR_VALUE, IS_READ, IS_TRANSFERRED, CUSTOM_ATTRIBUTES, CUSTOM_1, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, CUSTOM_10 " + + "FROM TASK " + + "WHERE CUSTOM_ATTRIBUTES like #{searchText}") @Results(value = { @Result(property = "id", column = "ID"), @Result(property = "created", column = "CREATED"), diff --git a/lib/taskana-data/src/main/java/pro/taskana/sampledata/SQLReplacer.java b/lib/taskana-data/src/main/java/pro/taskana/sampledata/SQLReplacer.java index 17024909a..7e9982adb 100644 --- a/lib/taskana-data/src/main/java/pro/taskana/sampledata/SQLReplacer.java +++ b/lib/taskana-data/src/main/java/pro/taskana/sampledata/SQLReplacer.java @@ -44,7 +44,7 @@ final class SQLReplacer { } static boolean isDb2(String dbProductName) { - return dbProductName.contains("DB2"); + return dbProductName != null && dbProductName.contains("DB2"); } /** diff --git a/lib/taskana-data/src/main/java/pro/taskana/sampledata/SampleDataGenerator.java b/lib/taskana-data/src/main/java/pro/taskana/sampledata/SampleDataGenerator.java index d77b3db38..c9954c66a 100644 --- a/lib/taskana-data/src/main/java/pro/taskana/sampledata/SampleDataGenerator.java +++ b/lib/taskana-data/src/main/java/pro/taskana/sampledata/SampleDataGenerator.java @@ -64,10 +64,10 @@ public class SampleDataGenerator { String cacheKey; //dbtable constants? if (tableExists("HISTORY_EVENTS")) { - scripts = SampleDataProvider.getDefaultScripts(); + scripts = SampleDataProvider.getScriptsWithEvents(); cacheKey = CACHED_EVENTSAMPLE; } else { - scripts = SampleDataProvider.getScriptsWithEvents(); + scripts = SampleDataProvider.getDefaultScripts(); cacheKey = CACHED_SAMPLE; } executeAndCacheScripts(scripts, cacheKey);