TSK-1748: Review Findings

This commit is contained in:
Joerg Heffner 2021-10-11 08:11:39 +02:00 committed by gitgoodjhe
parent 1c7fdea0ce
commit 0e78a95f1b
3 changed files with 30 additions and 34 deletions

View File

@ -2,6 +2,7 @@ package pro.taskana.task.internal.jobs.helper;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Objects;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.common.api.exceptions.SystemException;
@ -13,7 +14,7 @@ public class SqlConnectionRunner {
private final TaskanaEngine taskanaEngine;
public SqlConnectionRunner(TaskanaEngine taskanaEngine) {
this.taskanaEngine = taskanaEngine;
this.taskanaEngine = Objects.requireNonNull(taskanaEngine, "TaskanaEngine may not be null");
}
/**

View File

@ -12,7 +12,9 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.common.api.exceptions.SystemException;
import pro.taskana.common.api.exceptions.TaskanaRuntimeException;
import pro.taskana.common.test.security.JaasExtension;
import pro.taskana.common.test.security.WithAccessId;
import pro.taskana.task.internal.jobs.helper.SqlConnectionRunner;
/** Acceptance test for all "jobs tasks runner" scenarios. */
@ -59,4 +61,30 @@ class SqlConnectionRunnerAccTest extends AbstractAccTest {
}))
.isInstanceOf(SystemException.class);
}
@Test
@WithAccessId(user = "admin")
void should_SetOriginalSchema_When_ExceptionThrown() throws Exception {
taskanaEngine.getConfiguration().setSchemaName("NotExisting");
SqlConnectionRunner runner = new SqlConnectionRunner(taskanaEngine);
// TSK-1749
assertThat(runner.getConnection().getSchema()).matches("TASKANA\\s|TASKANA|taskana");
String taskId = "TKI:000000000000000000000000000000000000";
assertThatThrownBy(
() ->
runner.runWithConnection(
connection -> {
PreparedStatement preparedStatement =
connection.prepareStatement("select * from TASK where ID = ?");
preparedStatement.setString(1, taskId);
preparedStatement.executeQuery();
}))
.isInstanceOf(TaskanaRuntimeException.class);
// TSK-1749
assertThat(runner.getConnection().getSchema()).matches("TASKANA\\s|TASKANA|taskana");
}
}

View File

@ -1,14 +1,12 @@
package acceptance.jobs.helper;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import acceptance.AbstractAccTest;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.common.api.exceptions.TaskanaRuntimeException;
import pro.taskana.common.test.security.JaasExtension;
import pro.taskana.common.test.security.WithAccessId;
import pro.taskana.task.api.models.Task;
@ -26,37 +24,6 @@ class TaskUpdatePriorityBatchStatementAccTest extends AbstractAccTest {
resetDb(true);
}
@Test
@WithAccessId(user = "admin")
void should_SetOriginalSchema_When_ExceptionThrown() throws Exception {
taskanaEngine.getConfiguration().setSchemaName("NotExisting");
SqlConnectionRunner runner = new SqlConnectionRunner(taskanaEngine);
// TSK-1749
assertThat(runner.getConnection().getSchema()).matches("TASKANA\\s|TASKANA|taskana");
String taskId = "TKI:000000000000000000000000000000000050";
final int priorityUpdate = 25;
assertThatThrownBy(
() ->
runner.runWithConnection(
connection -> {
final TaskUpdatePriorityBatchStatement batchStatement =
new TaskUpdatePriorityBatchStatement(connection);
batchStatement.addPriorityUpdate(taskId, priorityUpdate);
batchStatement.executeBatch();
if (!connection.getAutoCommit()) {
connection.commit();
}
}))
.isInstanceOf(TaskanaRuntimeException.class);
// TSK-1749
assertThat(runner.getConnection().getSchema()).matches("TASKANA\\s|TASKANA|taskana");
}
@Test
@WithAccessId(user = "admin")
void should_updatePriority() throws Exception {