TSK-990: minor refactoring

This commit is contained in:
Mustapha Zorgati 2019-12-26 00:14:35 +01:00
parent 3ea0ab0bf4
commit c500599e1c
23 changed files with 144 additions and 160 deletions

View File

@ -50,8 +50,7 @@ public class DbSchemaCreator {
runner.setLogWriter(logWriter); runner.setLogWriter(logWriter);
runner.setErrorLogWriter(errorLogWriter); runner.setErrorLogWriter(errorLogWriter);
try { try {
InputStream resourceAsStream = this.getClass() InputStream resourceAsStream = this.getClass().getResourceAsStream(DB_SCHEMA);
.getResourceAsStream(DB_SCHEMA);
BufferedReader reader = new BufferedReader(new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8)); BufferedReader reader = new BufferedReader(new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8));
runner.runScript(getSqlWithSchemaNameParsed(reader)); runner.runScript(getSqlWithSchemaNameParsed(reader));
} finally { } finally {
@ -64,13 +63,13 @@ public class DbSchemaCreator {
} }
private StringReader getSqlWithSchemaNameParsed(BufferedReader reader) { private StringReader getSqlWithSchemaNameParsed(BufferedReader reader) {
StringBuffer content = new StringBuffer(); StringBuilder content = new StringBuilder();
try { try {
String line = ""; String line = "";
while (line != null) { while (line != null) {
line = reader.readLine(); line = reader.readLine();
if (line != null) { if (line != null) {
content.append(line.replaceAll("%schemaName%", schemaName) + System.lineSeparator()); content.append(line.replaceAll("%schemaName%", schemaName)).append(System.lineSeparator());
} }
} }
} catch (IOException e) { } catch (IOException e) {

View File

@ -15,6 +15,8 @@ import org.apache.ibatis.jdbc.ScriptRunner;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import pro.taskana.configuration.DB;
/** /**
* This class generates sample data for manual testing purposes. * This class generates sample data for manual testing purposes.
*/ */
@ -54,7 +56,7 @@ public class SampleDataGenerator {
runner.runScript(new BufferedReader( runner.runScript(new BufferedReader(
new InputStreamReader(this.getClass().getResourceAsStream(CLEAR), StandardCharsets.UTF_8))); new InputStreamReader(this.getClass().getResourceAsStream(CLEAR), StandardCharsets.UTF_8)));
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("caught Exception {}", e); LOGGER.error("caught Exception {}", e, e);
} }
runner.setStopOnError(true); runner.setStopOnError(true);
@ -73,7 +75,7 @@ public class SampleDataGenerator {
} }
private StringReader selectSchemaScript(String dbProductName, String schemaName) { 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 search_path TO " + schemaName + ";"
: "SET SCHEMA " + schemaName + ";"); : "SET SCHEMA " + schemaName + ";");
} }

View File

@ -20,27 +20,27 @@ public enum DB {
} }
public static boolean isDb2(String dbProductName) { public static boolean isDb2(String dbProductName) {
return dbProductName.contains(DB2.dbProductname); return dbProductName != null && dbProductName.contains(DB2.dbProductname);
} }
public static boolean isH2(String databaseProductName) { public static boolean isH2(String dbProductName) {
return databaseProductName.contains(H2.dbProductname); return dbProductName != null && dbProductName.contains(H2.dbProductname);
} }
public static boolean isPostgreSQL(String databaseProductName) { public static boolean isPostgreSQL(String dbProductName) {
return POSTGRESS.dbProductname.equals(databaseProductName); 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; return DB2.dbProductId;
} else if (isH2(databaseProductName)) { } else if (isH2(dbProductName)) {
return H2.dbProductId; return H2.dbProductId;
} else if (isPostgreSQL(databaseProductName)) { } else if (isPostgreSQL(dbProductName)) {
return POSTGRESS.dbProductId; return POSTGRESS.dbProductId;
} else { } else {
throw new UnsupportedDatabaseException(databaseProductName); throw new UnsupportedDatabaseException(dbProductName);
} }
} }
} }

View File

@ -69,8 +69,7 @@ public class DbSchemaCreator {
try { try {
if (!isSchemaPreexisting(connection)) { if (!isSchemaPreexisting(connection)) {
String scriptPath = selectDbScriptFileName(connection.getMetaData().getDatabaseProductName()); String scriptPath = selectDbScriptFileName(connection.getMetaData().getDatabaseProductName());
InputStream resourceAsStream = this.getClass() InputStream resourceAsStream = this.getClass().getResourceAsStream(scriptPath);
.getResourceAsStream(scriptPath);
BufferedReader reader = new BufferedReader( BufferedReader reader = new BufferedReader(
new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8)); new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8));
runner.runScript(getSqlSchemaNameParsed(reader)); runner.runScript(getSqlSchemaNameParsed(reader));
@ -98,8 +97,7 @@ public class DbSchemaCreator {
runner.setErrorLogWriter(new PrintWriter(errorWriter)); runner.setErrorLogWriter(new PrintWriter(errorWriter));
try { try {
String scriptPath = selectDbSchemaDetectionScript(connection.getMetaData().getDatabaseProductName()); String scriptPath = selectDbSchemaDetectionScript(connection.getMetaData().getDatabaseProductName());
InputStream resourceAsStream = this.getClass() InputStream resourceAsStream = this.getClass().getResourceAsStream(scriptPath);
.getResourceAsStream(scriptPath);
BufferedReader reader = new BufferedReader(new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8)); BufferedReader reader = new BufferedReader(new InputStreamReader(resourceAsStream, StandardCharsets.UTF_8));
runner.runScript(getSqlSchemaNameParsed(reader)); runner.runScript(getSqlSchemaNameParsed(reader));
} catch (Exception e) { } catch (Exception e) {

View File

@ -48,8 +48,7 @@ public final class DaysToWorkingDaysConverter {
negativeDaysToWorkingDays = generateNegativeDaysToWorkingDays(columnHeaders, referenceDate); negativeDaysToWorkingDays = generateNegativeDaysToWorkingDays(columnHeaders, referenceDate);
} }
public static DaysToWorkingDaysConverter initialize() public static DaysToWorkingDaysConverter initialize() throws InvalidArgumentException {
throws InvalidArgumentException {
return initialize(Collections.singletonList(new TimeIntervalColumnHeader(0)), Instant.now()); return initialize(Collections.singletonList(new TimeIntervalColumnHeader(0)), Instant.now());
} }
@ -95,6 +94,39 @@ public final class DaysToWorkingDaysConverter {
germanHolidaysEnabled = germanPublicHolidaysEnabled; 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<LocalDate> 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 * 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 * 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); .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<LocalDate> holidays) {
customHolidays = new HashSet<>(holidays == null ? Collections.emptyList() : holidays);
}
@Override @Override
public String toString() { public String toString() {
return "DaysToWorkingDaysConverter{" 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. * Enumeration of German holidays.
*/ */
@ -313,23 +331,4 @@ public final class DaysToWorkingDaysConverter {
return date.getDayOfMonth() == day && date.getMonthValue() == month; 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);
}
} }

View File

@ -19,6 +19,7 @@ import pro.taskana.ObjectReference;
import pro.taskana.TaskanaEngine; import pro.taskana.TaskanaEngine;
import pro.taskana.TaskanaEngine.ConnectionManagementMode; import pro.taskana.TaskanaEngine.ConnectionManagementMode;
import pro.taskana.TimeInterval; import pro.taskana.TimeInterval;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration;
import pro.taskana.sampledata.SampleDataGenerator; import pro.taskana.sampledata.SampleDataGenerator;
@ -28,7 +29,7 @@ import pro.taskana.sampledata.SampleDataGenerator;
*/ */
public abstract class AbstractAccTest { public abstract class AbstractAccTest {
protected static pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; protected static TaskanaEngineConfiguration taskanaEngineConfiguration;
protected static TaskanaEngine taskanaEngine; protected static TaskanaEngine taskanaEngine;
@BeforeAll @BeforeAll
@ -44,7 +45,7 @@ public abstract class AbstractAccTest {
sampleDataGenerator.dropDb(); sampleDataGenerator.dropDb();
} }
dataSource = TaskanaEngineTestConfiguration.getDataSource(); dataSource = TaskanaEngineTestConfiguration.getDataSource();
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false,
schemaName); schemaName);
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
taskanaEngine.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT); taskanaEngine.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);

View File

@ -15,6 +15,7 @@ import java.util.HashMap;
import org.h2.store.fs.FileUtils; import org.h2.store.fs.FileUtils;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.impl.TaskanaEngineImpl; import pro.taskana.impl.TaskanaEngineImpl;
import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration;
@ -26,7 +27,7 @@ import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration;
class TaskanaConfigAccTest extends TaskanaEngineImpl { class TaskanaConfigAccTest extends TaskanaEngineImpl {
TaskanaConfigAccTest() throws SQLException { TaskanaConfigAccTest() throws SQLException {
super(new pro.taskana.configuration.TaskanaEngineConfiguration(TaskanaEngineTestConfiguration.getDataSource(), super(new TaskanaEngineConfiguration(TaskanaEngineTestConfiguration.getDataSource(),
true, true,
TaskanaEngineTestConfiguration.getSchemaName())); TaskanaEngineTestConfiguration.getSchemaName()));
} }

View File

@ -12,6 +12,7 @@ import org.h2.store.fs.FileUtils;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import pro.taskana.TaskanaRole; import pro.taskana.TaskanaRole;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.impl.TaskanaEngineImpl; import pro.taskana.impl.TaskanaEngineImpl;
import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration;
@ -23,7 +24,7 @@ import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration;
class TaskanaRoleConfigAccTest extends TaskanaEngineImpl { class TaskanaRoleConfigAccTest extends TaskanaEngineImpl {
TaskanaRoleConfigAccTest() throws SQLException { TaskanaRoleConfigAccTest() throws SQLException {
super(new pro.taskana.configuration.TaskanaEngineConfiguration(TaskanaEngineTestConfiguration.getDataSource(), super(new TaskanaEngineConfiguration(TaskanaEngineTestConfiguration.getDataSource(),
true, true,
TaskanaEngineTestConfiguration.getSchemaName())); TaskanaEngineTestConfiguration.getSchemaName()));
} }

View File

@ -40,7 +40,6 @@ class TaskCleanupJobAccTest extends AbstractAccTest {
//required if single tests modify database //required if single tests modify database
//TODO split test class into readOnly & modifying tests to improve performance //TODO split test class into readOnly & modifying tests to improve performance
resetDb(false); resetDb(false);
resetDb(false);
taskService = taskanaEngine.getTaskService(); taskService = taskanaEngine.getTaskService();
} }

View File

@ -1,6 +1,5 @@
package acceptance.report; package acceptance.report;
import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
import javax.sql.DataSource; import javax.sql.DataSource;
@ -8,6 +7,7 @@ import javax.sql.DataSource;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import pro.taskana.TaskanaEngine; import pro.taskana.TaskanaEngine;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration; import pro.taskana.impl.configuration.TaskanaEngineTestConfiguration;
import pro.taskana.sampledata.SampleDataGenerator; import pro.taskana.sampledata.SampleDataGenerator;
@ -16,7 +16,7 @@ import pro.taskana.sampledata.SampleDataGenerator;
*/ */
public class AbstractReportAccTest { public class AbstractReportAccTest {
protected static pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; protected static TaskanaEngineConfiguration taskanaEngineConfiguration;
protected static TaskanaEngine taskanaEngine; protected static TaskanaEngine taskanaEngine;
// checkstyle needs this constructor, since this is only a "utility" class // checkstyle needs this constructor, since this is only a "utility" class
@ -28,11 +28,11 @@ public class AbstractReportAccTest {
resetDb(); resetDb();
} }
private static void resetDb() throws SQLException, IOException { private static void resetDb() throws SQLException {
DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource(); DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource();
String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
SampleDataGenerator sampleDataGenerator = new SampleDataGenerator(dataSource, schemaName); SampleDataGenerator sampleDataGenerator = new SampleDataGenerator(dataSource, schemaName);
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false,
schemaName); schemaName);
taskanaEngineConfiguration.setGermanPublicHolidaysEnabled(false); taskanaEngineConfiguration.setGermanPublicHolidaysEnabled(false);
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();

View File

@ -1,17 +1,9 @@
package acceptance.task; 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.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue; 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.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
@ -222,7 +214,6 @@ class CallbackStateAccTest extends AbstractAccTest {
List<String> externalIds = new ArrayList<>( List<String> externalIds = new ArrayList<>(
Arrays.asList(createdTask1.getExternalId(), createdTask2.getExternalId(), createdTask3.getExternalId())); Arrays.asList(createdTask1.getExternalId(), createdTask2.getExternalId(), createdTask3.getExternalId()));
//complete a task //complete a task
createdTask3 = (TaskImpl) taskService.forceCompleteTask(createdTask3.getId()); createdTask3 = (TaskImpl) taskService.forceCompleteTask(createdTask3.getId());
@ -258,7 +249,6 @@ class CallbackStateAccTest extends AbstractAccTest {
List<String> externalIds = new ArrayList<>( List<String> externalIds = new ArrayList<>(
Arrays.asList(createdTask1.getExternalId(), createdTask2.getExternalId(), createdTask3.getExternalId())); Arrays.asList(createdTask1.getExternalId(), createdTask2.getExternalId(), createdTask3.getExternalId()));
//claim two tasks //claim two tasks
createdTask1 = (TaskImpl) taskService.forceClaim(createdTask1.getId()); createdTask1 = (TaskImpl) taskService.forceClaim(createdTask1.getId());
createdTask2 = (TaskImpl) taskService.forceClaim(createdTask2.getId()); createdTask2 = (TaskImpl) taskService.forceClaim(createdTask2.getId());
@ -281,7 +271,6 @@ class CallbackStateAccTest extends AbstractAccTest {
throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException, throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException,
TaskAlreadyExistException, InvalidArgumentException { TaskAlreadyExistException, InvalidArgumentException {
TaskService taskService = taskanaEngine.getTaskService(); TaskService taskService = taskanaEngine.getTaskService();
TaskImpl createdTask1 = createTask(taskService, CallbackState.CALLBACK_PROCESSING_REQUIRED); TaskImpl createdTask1 = createTask(taskService, CallbackState.CALLBACK_PROCESSING_REQUIRED);
@ -296,7 +285,6 @@ class CallbackStateAccTest extends AbstractAccTest {
List<String> externalIds = new ArrayList<>( List<String> externalIds = new ArrayList<>(
Arrays.asList(createdTask1.getExternalId(), createdTask2.getExternalId(), createdTask3.getExternalId())); 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 //It's only allowed to set the CallbackState to REQUIRED if the TaskState doesn't equal COMPLETE
//Therefore 1 task should not get updated //Therefore 1 task should not get updated
BulkOperationResults<String, TaskanaException> bulkResult = taskService.setCallbackStateForTasks(externalIds, BulkOperationResults<String, TaskanaException> bulkResult = taskService.setCallbackStateForTasks(externalIds,
@ -311,15 +299,7 @@ class CallbackStateAccTest extends AbstractAccTest {
userName = "admin", userName = "admin",
groupNames = {"group_1"}) groupNames = {"group_1"})
@Test @Test
void testQueriesWithCallbackState() void testQueriesWithCallbackState() throws Exception {
<<<<<<< master
throws WorkbasketNotFoundException, ClassificationNotFoundException, NotAuthorizedException,
TaskAlreadyExistException, InvalidArgumentException, TaskNotFoundException, InvalidStateException,
=======
throws NotAuthorizedException,
TaskNotFoundException, InvalidStateException,
>>>>>>> TSK-983: Remove junit 4 from taskana-core
InvalidOwnerException, SQLException, IOException {
resetDb(false); resetDb(false);
TaskService taskService = taskanaEngine.getTaskService(); TaskService taskService = taskanaEngine.getTaskService();

View File

@ -120,8 +120,7 @@ class UpdateTaskAccTest extends AbstractAccTest {
Task task2 = taskService.getTask("TKI:000000000000000000000000000000000000"); Task task2 = taskService.getTask("TKI:000000000000000000000000000000000000");
task.setCustomAttribute("1", "willi"); task.setCustomAttribute("1", "willi");
Task updatedTask = taskService.updateTask(task); taskService.updateTask(task);
taskService.getTask(updatedTask.getId());
task2.setCustomAttribute("2", "Walter"); task2.setCustomAttribute("2", "Walter");
//TODO flaky test ... if speed is too high, //TODO flaky test ... if speed is too high,

View File

@ -5,8 +5,8 @@ import static org.hamcrest.Matchers.startsWith;
import static org.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsEqual.equalTo;
import static org.hamcrest.core.IsNot.not; import static org.hamcrest.core.IsNot.not;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyNoMoreInteractions;
@ -14,6 +14,7 @@ import static org.mockito.Mockito.when;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
@ -52,7 +53,7 @@ class WorkbasketServiceImplTest {
@Spy @Spy
@InjectMocks @InjectMocks
private WorkbasketServiceImpl cutSpy; private WorkbasketServiceImpl workbasketServiceSpy;
@Mock @Mock
private WorkbasketMapper workbasketMapperMock; private WorkbasketMapper workbasketMapperMock;
@ -89,15 +90,16 @@ class WorkbasketServiceImplTest {
WorkbasketAlreadyExistException, DomainNotFoundException { WorkbasketAlreadyExistException, DomainNotFoundException {
final int distTargetAmount = 2; final int distTargetAmount = 2;
WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1"); WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1");
doReturn(expectedWb).when(cutSpy).getWorkbasket(any()); doReturn(expectedWb).when(workbasketServiceSpy).getWorkbasket(any());
when(internalTaskanaEngineMock.domainExists(any())).thenReturn(true); when(internalTaskanaEngineMock.domainExists(any())).thenReturn(true);
Workbasket actualWb = cutSpy.createWorkbasket(expectedWb); Workbasket actualWb = workbasketServiceSpy.createWorkbasket(expectedWb);
cutSpy.setDistributionTargets(expectedWb.getId(), createTestDistributionTargets(distTargetAmount)); workbasketServiceSpy.setDistributionTargets(expectedWb.getId(),
createTestDistributionTargets(distTargetAmount));
verify(internalTaskanaEngineMock, times(4)).openConnection(); verify(internalTaskanaEngineMock, times(4)).openConnection();
verify(workbasketMapperMock, times(3)).insert(any()); 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(1)).deleteAllDistributionTargetsBySourceId(any());
verify(distributionTargetMapperMock, times(distTargetAmount)).insert(any(), any()); verify(distributionTargetMapperMock, times(distTargetAmount)).insert(any(), any());
verify(workbasketMapperMock, times(3)).findByKeyAndDomain(any(), any()); verify(workbasketMapperMock, times(3)).findByKeyAndDomain(any(), any());
@ -116,35 +118,35 @@ class WorkbasketServiceImplTest {
} }
@Test @Test
void testCreateWorkbasket_DistibutionTargetNotExisting() void testCreateWorkbasket_DistibutionTargetNotExisting() throws Exception {
throws NotAuthorizedException, WorkbasketNotFoundException {
WorkbasketImpl expectedWb = createTestWorkbasket("ID-1", "Key-1"); WorkbasketImpl expectedWb = createTestWorkbasket("ID-1", "Key-1");
when(internalTaskanaEngineMock.domainExists(any())).thenReturn(true); when(internalTaskanaEngineMock.domainExists(any())).thenReturn(true);
String otherWorkbasketId = "4711";
List<String> destinations = Collections.singletonList(otherWorkbasketId);
workbasketServiceSpy.createWorkbasket(expectedWb);
doReturn(expectedWb).when(workbasketServiceSpy).getWorkbasket(eq(expectedWb.getId()));
WorkbasketNotFoundException e = Assertions.assertThrows( WorkbasketNotFoundException e = Assertions.assertThrows(
WorkbasketNotFoundException.class, () -> { WorkbasketNotFoundException.class,
cutSpy.createWorkbasket(expectedWb); () -> workbasketServiceSpy.setDistributionTargets(expectedWb.getId(), destinations));
String id1 = "4711";
List<String> destinations = new ArrayList<>(Arrays.asList(id1));
cutSpy.setDistributionTargets(expectedWb.getId(), destinations);
doThrow(WorkbasketNotFoundException.class).when(cutSpy)
.getDistributionTargets(expectedWb.getId())
.get(0);
}); Assertions.assertEquals(e.getId(), otherWorkbasketId);
Assertions.assertNull(e.getKey());
Assertions.assertNull(e.getDomain());
verify(internalTaskanaEngineMock, times(3)).openConnection(); verify(internalTaskanaEngineMock, times(3)).openConnection();
verify(workbasketMapperMock, times(1)).insert(expectedWb); verify(workbasketMapperMock, times(1)).insert(expectedWb);
verify(workbasketMapperMock, times(1)).findById(any()); verify(workbasketMapperMock, times(1)).findById(any());
verify(workbasketMapperMock, times(1)).findByKeyAndDomain(any(), 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(internalTaskanaEngineMock, times(3)).returnConnection();
verify(taskanaEngine, times(2)).checkRoleMembership(any()); verify(taskanaEngine, times(2)).checkRoleMembership(any());
verify(internalTaskanaEngineMock, times(2)).getEngine(); verify(internalTaskanaEngineMock, times(2)).getEngine();
verify(internalTaskanaEngineMock, times(1)).domainExists(any()); verify(internalTaskanaEngineMock, times(1)).domainExists(any());
verify(distributionTargetMapperMock).deleteAllDistributionTargetsBySourceId(eq(expectedWb.getId()));
verify(workbasketMapperMock).update(eq(expectedWb));
verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock, verifyNoMoreInteractions(taskQueryMock, taskServiceMock, workbasketMapperMock, workbasketAccessMapperMock,
distributionTargetMapperMock, distributionTargetMapperMock, internalTaskanaEngineMock, taskanaEngine, taskanaEngineConfigurationMock);
internalTaskanaEngineMock, taskanaEngine, taskanaEngineConfigurationMock);
} }
@ -155,9 +157,8 @@ class WorkbasketServiceImplTest {
WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1"); WorkbasketImpl expectedWb = createTestWorkbasket(null, "Key-1");
when(workbasketMapperMock.findById(any())).thenThrow(WorkbasketNotFoundException.class); when(workbasketMapperMock.findById(any())).thenThrow(WorkbasketNotFoundException.class);
WorkbasketNotFoundException e = Assertions.assertThrows( Assertions.assertThrows(
WorkbasketNotFoundException.class, () -> WorkbasketNotFoundException.class, () -> workbasketServiceSpy.createWorkbasket(expectedWb));
cutSpy.createWorkbasket(expectedWb));
verify(internalTaskanaEngineMock, times(1)).openConnection(); verify(internalTaskanaEngineMock, times(1)).openConnection();
verify(workbasketMapperMock, times(1)).insert(expectedWb); verify(workbasketMapperMock, times(1)).insert(expectedWb);
@ -176,11 +177,11 @@ class WorkbasketServiceImplTest {
List<TaskSummary> usages = Arrays.asList(new TaskSummaryImpl(), new TaskSummaryImpl()); List<TaskSummary> usages = Arrays.asList(new TaskSummaryImpl(), new TaskSummaryImpl());
WorkbasketNotFoundException e = Assertions.assertThrows( WorkbasketNotFoundException e = Assertions.assertThrows(
WorkbasketNotFoundException.class, () -> WorkbasketNotFoundException.class,
cutSpy.deleteWorkbasket(wb.getId())); () -> workbasketServiceSpy.deleteWorkbasket(wb.getId()));
verify(internalTaskanaEngineMock, times(2)).openConnection(); 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(taskanaEngine, times(0)).getTaskService();
verify(taskServiceMock, times(0)).createTaskQuery(); verify(taskServiceMock, times(0)).createTaskQuery();
verify(taskQueryMock, times(0)).workbasketIdIn(wb.getId()); verify(taskQueryMock, times(0)).workbasketIdIn(wb.getId());
@ -205,10 +206,10 @@ class WorkbasketServiceImplTest {
throws InvalidWorkbasketException, NotAuthorizedException, throws InvalidWorkbasketException, NotAuthorizedException,
WorkbasketAlreadyExistException, DomainNotFoundException { WorkbasketAlreadyExistException, DomainNotFoundException {
List<String> distributionsTargets = new ArrayList<>(); List<String> distributionsTargets = new ArrayList<>();
amount = (amount < 0) ? 0 : amount; amount = Math.max(amount, 0);
for (int i = 0; i < amount; i++) { for (int i = 0; i < amount; i++) {
WorkbasketImpl wb = createTestWorkbasket("WB-ID-" + i, "WB-KEY-" + i); WorkbasketImpl wb = createTestWorkbasket("WB-ID-" + i, "WB-KEY-" + i);
cutSpy.createWorkbasket(wb); workbasketServiceSpy.createWorkbasket(wb);
distributionsTargets.add(wb.getId()); distributionsTargets.add(wb.getId());
} }
return distributionsTargets; return distributionsTargets;

View File

@ -9,6 +9,7 @@ import javax.sql.DataSource;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import pro.taskana.TaskanaEngine; import pro.taskana.TaskanaEngine;
import pro.taskana.configuration.TaskanaEngineConfiguration;
/** /**
* Test of configuration. * Test of configuration.
@ -18,8 +19,7 @@ class TaskanaEngineTestConfigurationTest {
@Test @Test
void testCreateTaskanaEngine() throws SQLException { void testCreateTaskanaEngine() throws SQLException {
DataSource ds = TaskanaEngineTestConfiguration.getDataSource(); DataSource ds = TaskanaEngineTestConfiguration.getDataSource();
pro.taskana.configuration.TaskanaEngineConfiguration taskEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration( TaskanaEngineConfiguration taskEngineConfiguration = new TaskanaEngineConfiguration(ds, false,
ds, false,
TaskanaEngineTestConfiguration.getSchemaName()); TaskanaEngineTestConfiguration.getSchemaName());
TaskanaEngine te = taskEngineConfiguration.buildTaskanaEngine(); TaskanaEngine te = taskEngineConfiguration.buildTaskanaEngine();

View File

@ -24,6 +24,7 @@ import pro.taskana.ClassificationSummary;
import pro.taskana.TaskanaEngine; import pro.taskana.TaskanaEngine;
import pro.taskana.TaskanaEngine.ConnectionManagementMode; import pro.taskana.TaskanaEngine.ConnectionManagementMode;
import pro.taskana.TimeInterval; import pro.taskana.TimeInterval;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
@ -44,7 +45,7 @@ class ClassificationServiceImplIntAutoCommitTest {
static int counter = 0; static int counter = 0;
private DataSource dataSource; private DataSource dataSource;
private ClassificationService classificationService; private ClassificationService classificationService;
private pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; private TaskanaEngineConfiguration taskanaEngineConfiguration;
private TaskanaEngine taskanaEngine; private TaskanaEngine taskanaEngine;
private TaskanaEngineImpl taskanaEngineImpl; private TaskanaEngineImpl taskanaEngineImpl;
@ -59,14 +60,13 @@ class ClassificationServiceImplIntAutoCommitTest {
void setup() throws SQLException { void setup() throws SQLException {
dataSource = TaskanaEngineTestConfiguration.getDataSource(); dataSource = TaskanaEngineTestConfiguration.getDataSource();
String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, false, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, false,
schemaName); schemaName);
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
classificationService = taskanaEngine.getClassificationService(); classificationService = taskanaEngine.getClassificationService();
taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine; taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;
taskanaEngineImpl.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT); taskanaEngineImpl.setConnectionManagementMode(ConnectionManagementMode.AUTOCOMMIT);
SampleDataGenerator sampleDataGenerator = new SampleDataGenerator(dataSource, schemaName); new SampleDataGenerator(dataSource, schemaName).clearDb();
sampleDataGenerator.clearDb();
} }
@Test @Test

View File

@ -29,6 +29,7 @@ import pro.taskana.ClassificationSummary;
import pro.taskana.TaskanaEngine; import pro.taskana.TaskanaEngine;
import pro.taskana.TaskanaEngine.ConnectionManagementMode; import pro.taskana.TaskanaEngine.ConnectionManagementMode;
import pro.taskana.TimeInterval; import pro.taskana.TimeInterval;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.ConcurrencyException; import pro.taskana.exceptions.ConcurrencyException;
@ -52,7 +53,7 @@ public class ClassificationServiceImplIntExplicitTest {
static int counter = 0; static int counter = 0;
private DataSource dataSource; private DataSource dataSource;
private ClassificationService classificationService; private ClassificationService classificationService;
private pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; private TaskanaEngineConfiguration taskanaEngineConfiguration;
private TaskanaEngine taskanaEngine; private TaskanaEngine taskanaEngine;
private TaskanaEngineImpl taskanaEngineImpl; private TaskanaEngineImpl taskanaEngineImpl;
@ -67,7 +68,7 @@ public class ClassificationServiceImplIntExplicitTest {
public void setup() throws SQLException { public void setup() throws SQLException {
dataSource = TaskanaEngineTestConfiguration.getDataSource(); dataSource = TaskanaEngineTestConfiguration.getDataSource();
String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, false, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, false,
schemaName); schemaName);
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
classificationService = taskanaEngine.getClassificationService(); classificationService = taskanaEngine.getClassificationService();

View File

@ -30,6 +30,7 @@ import pro.taskana.Workbasket;
import pro.taskana.WorkbasketAccessItem; import pro.taskana.WorkbasketAccessItem;
import pro.taskana.WorkbasketService; import pro.taskana.WorkbasketService;
import pro.taskana.WorkbasketType; import pro.taskana.WorkbasketType;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.DomainNotFoundException; import pro.taskana.exceptions.DomainNotFoundException;
@ -67,7 +68,7 @@ class TaskServiceImplIntAutocommitTest {
private TaskServiceImpl taskServiceImpl; private TaskServiceImpl taskServiceImpl;
private pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; private TaskanaEngineConfiguration taskanaEngineConfiguration;
private TaskanaEngine taskanaEngine; private TaskanaEngine taskanaEngine;
@ -81,7 +82,7 @@ class TaskServiceImplIntAutocommitTest {
void setup() throws SQLException { void setup() throws SQLException {
dataSource = TaskanaEngineTestConfiguration.getDataSource(); dataSource = TaskanaEngineTestConfiguration.getDataSource();
String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, false, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, false,
schemaName); schemaName);
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
@ -267,7 +268,7 @@ class TaskServiceImplIntAutocommitTest {
// Set up Security for this Test // Set up Security for this Test
dataSource = TaskanaEngineTestConfiguration.getDataSource(); dataSource = TaskanaEngineTestConfiguration.getDataSource();
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, true, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, true,
TaskanaEngineTestConfiguration.getSchemaName()); TaskanaEngineTestConfiguration.getSchemaName());
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine; taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;

View File

@ -35,6 +35,7 @@ import pro.taskana.WorkbasketAccessItem;
import pro.taskana.WorkbasketService; import pro.taskana.WorkbasketService;
import pro.taskana.WorkbasketType; import pro.taskana.WorkbasketType;
import pro.taskana.configuration.DbSchemaCreator; import pro.taskana.configuration.DbSchemaCreator;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.ClassificationAlreadyExistException; import pro.taskana.exceptions.ClassificationAlreadyExistException;
import pro.taskana.exceptions.ClassificationNotFoundException; import pro.taskana.exceptions.ClassificationNotFoundException;
import pro.taskana.exceptions.DomainNotFoundException; import pro.taskana.exceptions.DomainNotFoundException;
@ -73,7 +74,7 @@ class TaskServiceImplIntExplicitTest {
private static TaskServiceImpl taskServiceImpl; private static TaskServiceImpl taskServiceImpl;
private static pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; private static TaskanaEngineConfiguration taskanaEngineConfiguration;
private static TaskanaEngine taskanaEngine; private static TaskanaEngine taskanaEngine;
@ -90,8 +91,8 @@ class TaskServiceImplIntExplicitTest {
dataSource = new File(propertiesFileName).exists() dataSource = new File(propertiesFileName).exists()
? TaskanaEngineTestConfiguration.createDataSourceFromProperties(propertiesFileName) ? TaskanaEngineTestConfiguration.createDataSourceFromProperties(propertiesFileName)
: pro.taskana.configuration.TaskanaEngineConfiguration.createDefaultDataSource(); : TaskanaEngineConfiguration.createDefaultDataSource();
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false,
TaskanaEngineTestConfiguration.getSchemaName()); TaskanaEngineTestConfiguration.getSchemaName());
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
taskServiceImpl = (TaskServiceImpl) taskanaEngine.getTaskService(); taskServiceImpl = (TaskServiceImpl) taskanaEngine.getTaskService();
@ -362,7 +363,7 @@ class TaskServiceImplIntExplicitTest {
// Set up Security for this Test // Set up Security for this Test
dataSource = TaskanaEngineTestConfiguration.getDataSource(); dataSource = TaskanaEngineTestConfiguration.getDataSource();
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, true, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false, true,
TaskanaEngineTestConfiguration.getSchemaName()); TaskanaEngineTestConfiguration.getSchemaName());
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine; taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;

View File

@ -31,6 +31,7 @@ import pro.taskana.WorkbasketAccessItem;
import pro.taskana.WorkbasketService; import pro.taskana.WorkbasketService;
import pro.taskana.WorkbasketSummary; import pro.taskana.WorkbasketSummary;
import pro.taskana.WorkbasketType; import pro.taskana.WorkbasketType;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.DomainNotFoundException; import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException; import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.InvalidWorkbasketException; import pro.taskana.exceptions.InvalidWorkbasketException;
@ -70,7 +71,7 @@ class WorkbasketServiceImplIntAutocommitTest {
void setup() throws SQLException { void setup() throws SQLException {
DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource(); DataSource dataSource = TaskanaEngineTestConfiguration.getDataSource();
String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration( TaskanaEngineConfiguration taskanaEngineConfiguration = new TaskanaEngineConfiguration(
dataSource, false, dataSource, false,
schemaName); schemaName);
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
@ -176,7 +177,7 @@ class WorkbasketServiceImplIntAutocommitTest {
accessItem.setPermAppend(true); accessItem.setPermAppend(true);
workBasketService.updateWorkbasketAccessItem(accessItem); workBasketService.updateWorkbasketAccessItem(accessItem);
if (pro.taskana.configuration.TaskanaEngineConfiguration.shouldUseLowerCaseForAccessIds()) { if (TaskanaEngineConfiguration.shouldUseLowerCaseForAccessIds()) {
assertEquals("zaphod beeblebrox", accessItem.getAccessId()); assertEquals("zaphod beeblebrox", accessItem.getAccessId());
} else { } else {
assertEquals("Zaphod Beeblebrox", accessItem.getAccessId()); assertEquals("Zaphod Beeblebrox", accessItem.getAccessId());

View File

@ -24,6 +24,7 @@ import pro.taskana.WorkbasketAccessItem;
import pro.taskana.WorkbasketService; import pro.taskana.WorkbasketService;
import pro.taskana.WorkbasketSummary; import pro.taskana.WorkbasketSummary;
import pro.taskana.WorkbasketType; import pro.taskana.WorkbasketType;
import pro.taskana.configuration.TaskanaEngineConfiguration;
import pro.taskana.exceptions.DomainNotFoundException; import pro.taskana.exceptions.DomainNotFoundException;
import pro.taskana.exceptions.InvalidArgumentException; import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.InvalidWorkbasketException; import pro.taskana.exceptions.InvalidWorkbasketException;
@ -49,7 +50,7 @@ class WorkbasketServiceImplIntExplicitTest {
private static final int SLEEP_TIME = 100; private static final int SLEEP_TIME = 100;
static int counter = 0; static int counter = 0;
private DataSource dataSource; private DataSource dataSource;
private pro.taskana.configuration.TaskanaEngineConfiguration taskanaEngineConfiguration; private TaskanaEngineConfiguration taskanaEngineConfiguration;
private TaskanaEngine taskanaEngine; private TaskanaEngine taskanaEngine;
private TaskanaEngineImpl taskanaEngineImpl; private TaskanaEngineImpl taskanaEngineImpl;
private WorkbasketService workBasketService; private WorkbasketService workBasketService;
@ -65,7 +66,7 @@ class WorkbasketServiceImplIntExplicitTest {
void setup() throws SQLException { void setup() throws SQLException {
dataSource = TaskanaEngineTestConfiguration.getDataSource(); dataSource = TaskanaEngineTestConfiguration.getDataSource();
String schemaName = TaskanaEngineTestConfiguration.getSchemaName(); String schemaName = TaskanaEngineTestConfiguration.getSchemaName();
taskanaEngineConfiguration = new pro.taskana.configuration.TaskanaEngineConfiguration(dataSource, false, taskanaEngineConfiguration = new TaskanaEngineConfiguration(dataSource, false,
schemaName); schemaName);
taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine(); taskanaEngine = taskanaEngineConfiguration.buildTaskanaEngine();
taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine; taskanaEngineImpl = (TaskanaEngineImpl) taskanaEngine;

View File

@ -24,10 +24,9 @@ public interface TaskTestMapper {
}) })
String getCustomAttributesAsString(@Param("taskId") String taskId); String getCustomAttributesAsString(@Param("taskId") String taskId);
@Select( @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 "
"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 "
+ "FROM TASK " + "WHERE CUSTOM_ATTRIBUTES like #{searchText}")
+ "WHERE CUSTOM_ATTRIBUTES like #{searchText}")
@Results(value = { @Results(value = {
@Result(property = "id", column = "ID"), @Result(property = "id", column = "ID"),
@Result(property = "created", column = "CREATED"), @Result(property = "created", column = "CREATED"),

View File

@ -44,7 +44,7 @@ final class SQLReplacer {
} }
static boolean isDb2(String dbProductName) { static boolean isDb2(String dbProductName) {
return dbProductName.contains("DB2"); return dbProductName != null && dbProductName.contains("DB2");
} }
/** /**

View File

@ -64,10 +64,10 @@ public class SampleDataGenerator {
String cacheKey; String cacheKey;
//dbtable constants? //dbtable constants?
if (tableExists("HISTORY_EVENTS")) { if (tableExists("HISTORY_EVENTS")) {
scripts = SampleDataProvider.getDefaultScripts(); scripts = SampleDataProvider.getScriptsWithEvents();
cacheKey = CACHED_EVENTSAMPLE; cacheKey = CACHED_EVENTSAMPLE;
} else { } else {
scripts = SampleDataProvider.getScriptsWithEvents(); scripts = SampleDataProvider.getDefaultScripts();
cacheKey = CACHED_SAMPLE; cacheKey = CACHED_SAMPLE;
} }
executeAndCacheScripts(scripts, cacheKey); executeAndCacheScripts(scripts, cacheKey);