TSK-1726: Review Findings
This commit is contained in:
parent
e264a20389
commit
676caaae84
|
@ -51,33 +51,6 @@ public interface TaskCommentQuery extends BaseQuery<TaskComment, TaskCommentQuer
|
|||
*/
|
||||
TaskCommentQuery taskIdIn(String... taskIds);
|
||||
|
||||
/**
|
||||
* Add your {@linkplain Task} ids to your query, which should not be contained.
|
||||
*
|
||||
* @param taskIds the {@linkplain Task} ids as Strings
|
||||
* @return the query
|
||||
*/
|
||||
TaskCommentQuery taskIdNotIn(String... taskIds);
|
||||
|
||||
/**
|
||||
* Add your {@linkplain Task} ids for pattern matching to your query. It will be compared in SQL
|
||||
* with the LIKE operator. You may use a wildcard like % to specify the pattern. If you specify
|
||||
* multiple arguments they are combined with the OR keyword.
|
||||
*
|
||||
* @param taskIds your {@linkplain Task} ids
|
||||
* @return the query
|
||||
*/
|
||||
TaskCommentQuery taskIdLike(String... taskIds);
|
||||
|
||||
/**
|
||||
* Add your {@linkplain Task} ids for pattern matching to your query, which should not be
|
||||
* contained. It will be compared in SQL with the LIKE operator. You may use a wildcard like % to
|
||||
* specify the pattern. If you specify multiple arguments they are combined with the OR keyword.
|
||||
*
|
||||
* @param taskIds your {@linkplain Task} ids
|
||||
* @return the query
|
||||
*/
|
||||
TaskCommentQuery taskIdNotLike(String... taskIds);
|
||||
|
||||
/**
|
||||
* Add your texts for pattern matching to your query. It will be compared in SQL with the LIKE
|
||||
|
|
|
@ -8,7 +8,7 @@ public enum TaskCommentQueryColumnName implements QueryColumnName {
|
|||
TASK_ID("tc.task_id"),
|
||||
TEXT_FIELD("tc.text_field"),
|
||||
CREATOR("tc.creator"),
|
||||
CREATOR_LONG_NAME("u.long_name"),
|
||||
CREATOR_FULL_NAME("u.full_name"),
|
||||
CREATED("tc.created"),
|
||||
MODIFIED("tc.modified");
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ public interface TaskComment {
|
|||
*
|
||||
* @return the long Name of the creator
|
||||
*/
|
||||
String getCreatorLongName();
|
||||
String getCreatorFullName();
|
||||
|
||||
/**
|
||||
* Gets the text field of the task comment.
|
||||
|
|
|
@ -4,18 +4,25 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.session.RowBounds;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import pro.taskana.common.api.TaskanaRole;
|
||||
import pro.taskana.common.api.TimeInterval;
|
||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||
import pro.taskana.common.internal.InternalTaskanaEngine;
|
||||
import pro.taskana.task.api.TaskCommentQuery;
|
||||
import pro.taskana.task.api.TaskCommentQueryColumnName;
|
||||
import pro.taskana.task.api.exceptions.TaskNotFoundException;
|
||||
import pro.taskana.task.api.models.TaskComment;
|
||||
import pro.taskana.workbasket.api.exceptions.NotAuthorizedToQueryWorkbasketException;
|
||||
import pro.taskana.workbasket.internal.WorkbasketQueryImpl;
|
||||
|
||||
/** TaskCommentQuery for generating dynamic sql. */
|
||||
public class TaskCommentQueryImpl implements TaskCommentQuery {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(TaskCommentQueryImpl.class);
|
||||
|
||||
private static final String LINK_TO_MAPPER =
|
||||
"pro.taskana.task.internal.TaskCommentQueryMapper.queryTaskComments";
|
||||
|
||||
|
@ -35,9 +42,6 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
private String[] idLike;
|
||||
private String[] idNotLike;
|
||||
private String[] taskIdIn;
|
||||
private String[] taskIdNotIn;
|
||||
private String[] taskIdLike;
|
||||
private String[] taskIdNotLike;
|
||||
private String[] creatorIn;
|
||||
private String[] creatorNotIn;
|
||||
private String[] creatorLike;
|
||||
|
@ -90,24 +94,6 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskCommentQuery taskIdNotIn(String... taskIds) {
|
||||
this.taskIdNotIn = taskIds;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskCommentQuery taskIdLike(String... taskIds) {
|
||||
this.taskIdLike = toUpperCopy(taskIds);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskCommentQuery taskIdNotLike(String... taskIds) {
|
||||
this.taskIdNotLike = toUpperCopy(taskIds);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskCommentQuery textFieldLike(String... texts) {
|
||||
this.textFieldLike = toUpperCopy(texts);
|
||||
|
@ -172,6 +158,7 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
|
||||
@Override
|
||||
public List<TaskComment> list() {
|
||||
checkTaskPermission();
|
||||
setupAccessIds();
|
||||
return taskanaEngine.executeInDatabaseConnection(
|
||||
() -> taskanaEngine.getSqlSession().selectList(LINK_TO_MAPPER, this));
|
||||
|
@ -179,6 +166,7 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
|
||||
@Override
|
||||
public List<TaskComment> list(int offset, int limit) {
|
||||
checkTaskPermission();
|
||||
setupAccessIds();
|
||||
RowBounds rowBounds = new RowBounds(offset, limit);
|
||||
return taskanaEngine.executeInDatabaseConnection(
|
||||
|
@ -188,10 +176,11 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
@Override
|
||||
public List<String> listValues(
|
||||
TaskCommentQueryColumnName columnName, SortDirection sortDirection) {
|
||||
checkTaskPermission();
|
||||
setupAccessIds();
|
||||
queryColumnName = columnName;
|
||||
// TO-DO: order?
|
||||
if (columnName == TaskCommentQueryColumnName.CREATOR_LONG_NAME) {
|
||||
if (columnName == TaskCommentQueryColumnName.CREATOR_FULL_NAME) {
|
||||
joinWithUserInfo = true;
|
||||
}
|
||||
|
||||
|
@ -201,6 +190,7 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
|
||||
@Override
|
||||
public TaskComment single() {
|
||||
checkTaskPermission();
|
||||
setupAccessIds();
|
||||
return taskanaEngine.executeInDatabaseConnection(
|
||||
() -> taskanaEngine.getSqlSession().selectOne(LINK_TO_MAPPER, this));
|
||||
|
@ -208,6 +198,7 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
|
||||
@Override
|
||||
public long count() {
|
||||
checkTaskPermission();
|
||||
setupAccessIds();
|
||||
Long rowCount =
|
||||
taskanaEngine.executeInDatabaseConnection(
|
||||
|
@ -239,18 +230,6 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
return taskIdIn;
|
||||
}
|
||||
|
||||
public String[] getTaskIdNotIn() {
|
||||
return taskIdNotIn;
|
||||
}
|
||||
|
||||
public String[] getTaskIdLike() {
|
||||
return taskIdLike;
|
||||
}
|
||||
|
||||
public String[] getTaskIdNotLike() {
|
||||
return taskIdNotLike;
|
||||
}
|
||||
|
||||
public String[] getCreatorIn() {
|
||||
return creatorIn;
|
||||
}
|
||||
|
@ -313,6 +292,32 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
return addOrderCriteria("MODIFIED", sortDirection);
|
||||
}
|
||||
|
||||
private void checkTaskPermission() {
|
||||
|
||||
if (taskIdIn != null) {
|
||||
if (taskanaEngine.getEngine().isUserInRole(TaskanaRole.ADMIN, TaskanaRole.TASK_ADMIN)) {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("Skipping permissions check since user is in role ADMIN or TASK_ADMIN.");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Arrays.stream(taskIdIn)
|
||||
.forEach(
|
||||
taskId -> {
|
||||
try {
|
||||
taskService.getTask(taskId);
|
||||
} catch (NotAuthorizedException e) {
|
||||
throw new NotAuthorizedToQueryWorkbasketException(
|
||||
e.getMessage(), e.getErrorCode(), e);
|
||||
} catch (TaskNotFoundException e) {
|
||||
LOGGER.warn(
|
||||
String.format("The Task with the ID ' %s ' does not exist.", taskId), e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private TaskCommentQuery addOrderCriteria(String columnName, SortDirection sortDirection) {
|
||||
String orderByDirection =
|
||||
" " + (sortDirection == null ? SortDirection.ASCENDING : sortDirection);
|
||||
|
@ -362,12 +367,6 @@ public class TaskCommentQueryImpl implements TaskCommentQuery {
|
|||
+ Arrays.toString(idNotLike)
|
||||
+ ", taskIdIn="
|
||||
+ Arrays.toString(taskIdIn)
|
||||
+ ", taskIdNotIn="
|
||||
+ Arrays.toString(taskIdNotIn)
|
||||
+ ", taskIdLike="
|
||||
+ Arrays.toString(taskIdLike)
|
||||
+ ", taskIdNotLike="
|
||||
+ Arrays.toString(taskIdNotLike)
|
||||
+ ", creatorIn="
|
||||
+ Arrays.toString(creatorIn)
|
||||
+ ", creatorNotIn="
|
||||
|
|
|
@ -15,7 +15,7 @@ public interface TaskCommentQueryMapper {
|
|||
@Result(property = "taskId", column = "TASK_ID")
|
||||
@Result(property = "textField", column = "TEXT_FIELD")
|
||||
@Result(property = "creator", column = "CREATOR")
|
||||
@Result(property = "creatorLongName", column = "FULL_NAME")
|
||||
@Result(property = "creatorFullName", column = "FULL_NAME")
|
||||
@Result(property = "created", column = "CREATED")
|
||||
@Result(property = "modified", column = "MODIFIED")
|
||||
List<TaskCommentImpl> queryTaskComments(
|
||||
|
|
|
@ -89,9 +89,6 @@ public class TaskCommentQuerySqlProvider {
|
|||
whereLike("idLike", "tc.ID", sb);
|
||||
whereNotLike("idNotLike", "tc.ID", sb);
|
||||
whereIn("taskIdIn", "tc.TASK_ID", sb);
|
||||
whereNotIn("taskIdNotIn", "tc.TASK_ID", sb);
|
||||
whereLike("taskIdLike", "tc.TASK_ID", sb);
|
||||
whereNotLike("taskIdNotLike", "tc.TASK_ID", sb);
|
||||
whereLike("textFieldLike", "tc.TEXT_FIELD", sb);
|
||||
whereNotLike("textFieldNotLike", "tc.TEXT_FIELD", sb);
|
||||
whereIn("creatorIn", "tc.CREATOR", sb);
|
||||
|
|
|
@ -184,15 +184,15 @@ class TaskCommentServiceImpl {
|
|||
throw new TaskCommentNotFoundException(taskCommentId);
|
||||
}
|
||||
|
||||
taskService.getTask(result.getTaskId());
|
||||
|
||||
if (taskanaEngine.getEngine().getConfiguration().getAddAdditionalUserInfo()) {
|
||||
User creator = userMapper.findById(result.getCreator());
|
||||
if (creator != null) {
|
||||
result.setCreatorLongName(creator.getFullName());
|
||||
result.setCreatorFullName(creator.getFullName());
|
||||
}
|
||||
}
|
||||
|
||||
taskService.getTask(result.getTaskId());
|
||||
|
||||
return result;
|
||||
|
||||
} finally {
|
||||
|
|
|
@ -12,7 +12,7 @@ public class TaskCommentImpl implements TaskComment {
|
|||
private String taskId;
|
||||
private String textField;
|
||||
private String creator;
|
||||
private String creatorLongName;
|
||||
private String creatorFullName;
|
||||
private Instant created;
|
||||
private Instant modified;
|
||||
|
||||
|
@ -54,12 +54,12 @@ public class TaskCommentImpl implements TaskComment {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getCreatorLongName() {
|
||||
return creatorLongName;
|
||||
public String getCreatorFullName() {
|
||||
return creatorFullName;
|
||||
}
|
||||
|
||||
public void setCreatorLongName(String creatorLongName) {
|
||||
this.creatorLongName = creatorLongName;
|
||||
public void setCreatorFullName(String creatorFullName) {
|
||||
this.creatorFullName = creatorFullName;
|
||||
}
|
||||
|
||||
public String getTextField() {
|
||||
|
@ -99,7 +99,7 @@ public class TaskCommentImpl implements TaskComment {
|
|||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, taskId, textField, creator, creatorLongName, created, modified);
|
||||
return Objects.hash(id, taskId, textField, creator, creatorFullName, created, modified);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -120,7 +120,7 @@ public class TaskCommentImpl implements TaskComment {
|
|||
&& Objects.equals(taskId, other.getTaskId())
|
||||
&& Objects.equals(textField, other.getTextField())
|
||||
&& Objects.equals(creator, other.getCreator())
|
||||
&& Objects.equals(creatorLongName, other.getCreatorLongName())
|
||||
&& Objects.equals(creatorFullName, other.getCreatorFullName())
|
||||
&& Objects.equals(created, other.getCreated())
|
||||
&& Objects.equals(modified, other.getModified());
|
||||
}
|
||||
|
@ -135,8 +135,8 @@ public class TaskCommentImpl implements TaskComment {
|
|||
+ textField
|
||||
+ ", creator="
|
||||
+ creator
|
||||
+ ", creatorLongName="
|
||||
+ creatorLongName
|
||||
+ ", creatorFullName="
|
||||
+ creatorFullName
|
||||
+ ", created="
|
||||
+ created
|
||||
+ ", modified="
|
||||
|
|
|
@ -107,7 +107,7 @@ class TaskCommentBuilderTest {
|
|||
expectedTaskComment.setCreator("user-1-1");
|
||||
|
||||
assertThat(taskComment)
|
||||
.hasNoNullFieldsOrPropertiesExcept("creatorLongName")
|
||||
.hasNoNullFieldsOrPropertiesExcept("creatorFullName")
|
||||
.usingRecursiveComparison()
|
||||
.ignoringFields("id")
|
||||
.isEqualTo(expectedTaskComment);
|
||||
|
|
|
@ -41,7 +41,9 @@ class TaskUpdatePriorityBatchStatementAccTest extends AbstractAccTest {
|
|||
new TaskUpdatePriorityBatchStatement(connection);
|
||||
batchStatement.addPriorityUpdate(taskId, priorityUpdate);
|
||||
batchStatement.executeBatch();
|
||||
connection.commit();
|
||||
if (!connection.getAutoCommit()) {
|
||||
connection.commit();
|
||||
}
|
||||
});
|
||||
|
||||
// then
|
||||
|
|
|
@ -97,9 +97,9 @@ class GetTaskCommentAccTest extends AbstractAccTest {
|
|||
TaskComment taskComment =
|
||||
taskService.getTaskComment("TCI:000000000000000000000000000000000000");
|
||||
|
||||
String creatorLongName =
|
||||
String creatorFullName =
|
||||
taskanaEngine.getUserService().getUser(taskComment.getCreator()).getFullName();
|
||||
assertThat(taskComment).extracting(TaskComment::getCreatorLongName).isEqualTo(creatorLongName);
|
||||
assertThat(taskComment).extracting(TaskComment::getCreatorFullName).isEqualTo(creatorFullName);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
|
@ -112,7 +112,7 @@ class GetTaskCommentAccTest extends AbstractAccTest {
|
|||
TaskComment taskComment =
|
||||
taskService.getTaskComment("TCI:000000000000000000000000000000000000");
|
||||
|
||||
assertThat(taskComment).extracting(TaskComment::getCreatorLongName).isNull();
|
||||
assertThat(taskComment).extracting(TaskComment::getCreatorFullName).isNull();
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
|
@ -128,11 +128,11 @@ class GetTaskCommentAccTest extends AbstractAccTest {
|
|||
taskComments.forEach(
|
||||
wrap(
|
||||
taskComment -> {
|
||||
String creatorLongName =
|
||||
String creatorFullName =
|
||||
taskanaEngine.getUserService().getUser(taskComment.getCreator()).getFullName();
|
||||
assertThat(taskComment)
|
||||
.extracting(TaskComment::getCreatorLongName)
|
||||
.isEqualTo(creatorLongName);
|
||||
.extracting(TaskComment::getCreatorFullName)
|
||||
.isEqualTo(creatorFullName);
|
||||
}));
|
||||
}
|
||||
|
||||
|
@ -148,6 +148,6 @@ class GetTaskCommentAccTest extends AbstractAccTest {
|
|||
|
||||
taskComments.forEach(
|
||||
taskComment ->
|
||||
assertThat(taskComment).extracting(TaskComment::getCreatorLongName).isNull());
|
||||
assertThat(taskComment).extracting(TaskComment::getCreatorFullName).isNull());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import acceptance.AbstractAccTest;
|
|||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.exceptions.TooManyResultsException;
|
||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
|
@ -16,6 +17,7 @@ import pro.taskana.common.test.security.WithAccessId;
|
|||
import pro.taskana.task.api.TaskCommentQuery;
|
||||
import pro.taskana.task.api.TaskCommentQueryColumnName;
|
||||
import pro.taskana.task.api.models.TaskComment;
|
||||
import pro.taskana.workbasket.api.exceptions.NotAuthorizedToQueryWorkbasketException;
|
||||
|
||||
/** Test for TaskComment queries. */
|
||||
@ExtendWith(JaasExtension.class)
|
||||
|
@ -45,6 +47,20 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
assertThat(comments).hasSize(3);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "user-1-1")
|
||||
@Test
|
||||
void should_ThrowException_When_NotAuthorizedToReadTaskComments() {
|
||||
|
||||
ThrowingCallable call =
|
||||
() ->
|
||||
taskService
|
||||
.createTaskCommentQuery()
|
||||
.taskIdIn("TKI:000000000000000000000000000000000020")
|
||||
.list();
|
||||
|
||||
assertThatThrownBy(call).isInstanceOf(NotAuthorizedToQueryWorkbasketException.class);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterTaskComments_For_CreatorIn() {
|
||||
|
@ -70,30 +86,6 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
assertThat(comments).isEmpty();
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterTaskComments_For_IdNotIn() {
|
||||
List<TaskComment> comments =
|
||||
taskService
|
||||
.createTaskCommentQuery()
|
||||
.idNotIn(
|
||||
"TCI:000000000000000000000000000000000000",
|
||||
"TCI:000000000000000000000000000000000002")
|
||||
.list();
|
||||
assertThat(comments).hasSize(11);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterTaskComments_For_TaskIdNotIn() {
|
||||
List<TaskComment> comments =
|
||||
taskService
|
||||
.createTaskCommentQuery()
|
||||
.taskIdNotIn("TKI:000000000000000000000000000000000000")
|
||||
.list();
|
||||
assertThat(comments).hasSize(10);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterTaskComments_For_CreatorNotIn() {
|
||||
|
@ -127,13 +119,6 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
assertThat(comments).hasSize(4);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterTaskComments_For_TaskIdLike() {
|
||||
List<TaskComment> comments = taskService.createTaskCommentQuery().taskIdLike("%00026%").list();
|
||||
assertThat(comments).hasSize(2);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterTaskComments_For_TextFieldLike() {
|
||||
|
@ -156,14 +141,6 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
assertThat(comments).hasSize(9);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterTaskComments_For_TaskIdNotLike() {
|
||||
List<TaskComment> comments =
|
||||
taskService.createTaskCommentQuery().taskIdNotLike("%00026%").list();
|
||||
assertThat(comments).hasSize(11);
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_FilterTaskComments_For_TextFieldNotLike() {
|
||||
|
@ -234,7 +211,7 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
List<String> listedValues =
|
||||
taskService
|
||||
.createTaskCommentQuery()
|
||||
.listValues(TaskCommentQueryColumnName.CREATOR_LONG_NAME, null);
|
||||
.listValues(TaskCommentQueryColumnName.CREATOR_FULL_NAME, null);
|
||||
assertThat(listedValues).hasSize(3);
|
||||
}
|
||||
|
||||
|
@ -277,7 +254,7 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
|
||||
@WithAccessId(user = "admin")
|
||||
@Test
|
||||
void should_ReturnSingleHistoryEvent_When_UsingSingleMethod() {
|
||||
void should_ReturnSingleTaskComment_When_UsingSingleMethod() {
|
||||
TaskComment single =
|
||||
taskService
|
||||
.createTaskCommentQuery()
|
||||
|
@ -309,7 +286,7 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
String creatorFullName =
|
||||
taskanaEngine.getUserService().getUser(taskComments.get(0).getCreator()).getFullName();
|
||||
assertThat(taskComments.get(0))
|
||||
.extracting(TaskComment::getCreatorLongName)
|
||||
.extracting(TaskComment::getCreatorFullName)
|
||||
.isEqualTo(creatorFullName);
|
||||
}
|
||||
|
||||
|
@ -324,7 +301,7 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
.list();
|
||||
|
||||
assertThat(taskComments).hasSize(1);
|
||||
assertThat(taskComments.get(0)).extracting(TaskComment::getCreatorLongName).isNull();
|
||||
assertThat(taskComments.get(0)).extracting(TaskComment::getCreatorFullName).isNull();
|
||||
}
|
||||
|
||||
@WithAccessId(user = "admin")
|
||||
|
@ -338,6 +315,6 @@ class QueryTaskCommentAccTest extends AbstractAccTest {
|
|||
.list();
|
||||
|
||||
assertThat(taskComments).hasSize(1);
|
||||
assertThat(taskComments.get(0)).extracting(TaskComment::getCreatorLongName).isNull();
|
||||
assertThat(taskComments.get(0)).extracting(TaskComment::getCreatorFullName).isNull();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ class UpdateTaskCommentAccTest extends AbstractAccTest {
|
|||
List<TaskComment> taskComments =
|
||||
taskService.getTaskComments("TKI:000000000000000000000000000000000000");
|
||||
assertThat(taskComments).hasSize(3);
|
||||
assertThat(taskComments.get(0).getTextField()).isEqualTo("some other text in textfield");
|
||||
assertThat(taskComments.get(0).getTextField()).isEqualTo("some text in textfield");
|
||||
|
||||
TaskComment taskComment =
|
||||
taskService.getTaskComment("TCI:000000000000000000000000000000000001");
|
||||
|
@ -64,7 +64,7 @@ class UpdateTaskCommentAccTest extends AbstractAccTest {
|
|||
List<TaskComment> taskCommentsAfterUpdateAttempt =
|
||||
taskService.getTaskComments("TKI:000000000000000000000000000000000000");
|
||||
assertThat(taskCommentsAfterUpdateAttempt.get(0).getTextField())
|
||||
.isEqualTo("some other text in textfield");
|
||||
.isEqualTo("some text in textfield");
|
||||
}
|
||||
|
||||
@WithAccessId(user = "user-1-1")
|
||||
|
|
|
@ -38,26 +38,6 @@ public class TaskCommentQueryFilterParameter implements QueryParameter<TaskComme
|
|||
@JsonProperty("task-id")
|
||||
private final String[] taskIdIn;
|
||||
|
||||
/** Filter by what the task id of the TaskComment shouldn't be. This is an exact match. */
|
||||
@JsonProperty("task-id-not")
|
||||
private final String[] taskIdNotIn;
|
||||
|
||||
/**
|
||||
* Filter by the task id of the TaskComment. This results in a substring search (% is appended to
|
||||
* the front and end of the requested value). Further SQL "LIKE" wildcard characters will be
|
||||
* resolved correctly.
|
||||
*/
|
||||
@JsonProperty("task-id-like")
|
||||
private final String[] taskIdLike;
|
||||
|
||||
/**
|
||||
* Filter by what the task id of the TaskComment shouldn't be. This results in a substring search
|
||||
* (% is appended to the front and end of the requested value). Further SQL "LIKE" wildcard
|
||||
* characters will be resolved correctly.
|
||||
*/
|
||||
@JsonProperty("task-id-not-like")
|
||||
private final String[] taskIdNotLike;
|
||||
|
||||
/** Filter by the creator of the TaskComment. This is an exact match. */
|
||||
@JsonProperty("creator")
|
||||
private final String[] creatorIn;
|
||||
|
@ -141,9 +121,6 @@ public class TaskCommentQueryFilterParameter implements QueryParameter<TaskComme
|
|||
"id-like",
|
||||
"id-not-like",
|
||||
"task-id",
|
||||
"task-id-not",
|
||||
"task-id-like",
|
||||
"task-id-not-like",
|
||||
"creator",
|
||||
"creator-not",
|
||||
"creator-like",
|
||||
|
@ -161,9 +138,6 @@ public class TaskCommentQueryFilterParameter implements QueryParameter<TaskComme
|
|||
String[] idLike,
|
||||
String[] idNotLike,
|
||||
String[] taskIdIn,
|
||||
String[] taskIdNotIn,
|
||||
String[] taskIdLike,
|
||||
String[] taskIdNotLike,
|
||||
String[] creatorIn,
|
||||
String[] creatorNotIn,
|
||||
String[] creatorLike,
|
||||
|
@ -179,9 +153,6 @@ public class TaskCommentQueryFilterParameter implements QueryParameter<TaskComme
|
|||
this.idLike = idLike;
|
||||
this.idNotLike = idNotLike;
|
||||
this.taskIdIn = taskIdIn;
|
||||
this.taskIdNotIn = taskIdNotIn;
|
||||
this.taskIdLike = taskIdLike;
|
||||
this.taskIdNotLike = taskIdNotLike;
|
||||
this.creatorIn = creatorIn;
|
||||
this.creatorNotIn = creatorNotIn;
|
||||
this.creatorLike = creatorLike;
|
||||
|
@ -203,13 +174,6 @@ public class TaskCommentQueryFilterParameter implements QueryParameter<TaskComme
|
|||
.map(this::wrapElementsInLikeStatement)
|
||||
.ifPresent(query::idNotLike);
|
||||
Optional.ofNullable(taskIdIn).ifPresent(query::taskIdIn);
|
||||
Optional.ofNullable(taskIdNotIn).ifPresent(query::taskIdNotIn);
|
||||
Optional.ofNullable(taskIdLike)
|
||||
.map(this::wrapElementsInLikeStatement)
|
||||
.ifPresent(query::taskIdLike);
|
||||
Optional.ofNullable(taskIdNotLike)
|
||||
.map(this::wrapElementsInLikeStatement)
|
||||
.ifPresent(query::taskIdNotLike);
|
||||
Optional.ofNullable(creatorIn).ifPresent(query::creatorIn);
|
||||
Optional.ofNullable(creatorNotIn).ifPresent(query::creatorNotIn);
|
||||
Optional.ofNullable(creatorLike)
|
||||
|
|
|
@ -38,7 +38,7 @@ public class TaskCommentRepresentationModelAssembler
|
|||
repModel.setTaskId(taskComment.getTaskId());
|
||||
repModel.setTextField(taskComment.getTextField());
|
||||
repModel.setCreator(taskComment.getCreator());
|
||||
repModel.setCreatorLongName(taskComment.getCreatorLongName());
|
||||
repModel.setCreatorFullName(taskComment.getCreatorFullName());
|
||||
repModel.setCreated(taskComment.getCreated());
|
||||
repModel.setModified(taskComment.getModified());
|
||||
try {
|
||||
|
@ -63,7 +63,7 @@ public class TaskCommentRepresentationModelAssembler
|
|||
taskComment.setId(repModel.getTaskCommentId());
|
||||
taskComment.setTextField(repModel.getTextField());
|
||||
taskComment.setCreator(repModel.getCreator());
|
||||
taskComment.setCreatorLongName(repModel.getCreatorLongName());
|
||||
taskComment.setCreatorFullName(repModel.getCreatorFullName());
|
||||
taskComment.setCreated(repModel.getCreated());
|
||||
taskComment.setModified(repModel.getModified());
|
||||
return taskComment;
|
||||
|
|
|
@ -18,7 +18,7 @@ public class TaskCommentRepresentationModel
|
|||
/** The creator of the task comment. */
|
||||
private String creator;
|
||||
/** The long name of the task comment creator. */
|
||||
private String creatorLongName;
|
||||
private String creatorFullName;
|
||||
/** The creation timestamp in the system. */
|
||||
private Instant created;
|
||||
/** Timestamp of the last task comment modification. */
|
||||
|
@ -56,12 +56,12 @@ public class TaskCommentRepresentationModel
|
|||
this.creator = creator;
|
||||
}
|
||||
|
||||
public String getCreatorLongName() {
|
||||
return creatorLongName;
|
||||
public String getCreatorFullName() {
|
||||
return creatorFullName;
|
||||
}
|
||||
|
||||
public void setCreatorLongName(String creatorLongName) {
|
||||
this.creatorLongName = creatorLongName;
|
||||
public void setCreatorFullName(String creatorFullName) {
|
||||
this.creatorFullName = creatorFullName;
|
||||
}
|
||||
|
||||
public Instant getCreated() {
|
||||
|
|
|
@ -57,16 +57,21 @@ class TaskCommentControllerIntTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
void should_ReturnEmptyTaskCommentList_When_TaskIstNotVisible() {
|
||||
void should_FailToReturnTaskComments_When_TaskIstNotVisible() {
|
||||
String url =
|
||||
restHelper.toUrl(
|
||||
RestEndpoints.URL_TASK_COMMENTS, "TKI:000000000000000000000000000000000004");
|
||||
HttpEntity<Object> auth = new HttpEntity<>(RestHelper.generateHeadersForUser("user-1-1"));
|
||||
|
||||
ResponseEntity<TaskCommentCollectionRepresentationModel> taskComments =
|
||||
TEMPLATE.exchange(url, HttpMethod.GET, auth, TASK_COMMENT_PAGE_MODEL_TYPE);
|
||||
ThrowingCallable httpCall =
|
||||
() -> {
|
||||
TEMPLATE.exchange(url, HttpMethod.GET, auth, TASK_COMMENT_PAGE_MODEL_TYPE);
|
||||
};
|
||||
|
||||
assertThat(taskComments.getBody().getContent()).isEmpty();
|
||||
assertThatThrownBy(httpCall)
|
||||
.extracting(HttpStatusCodeException.class::cast)
|
||||
.extracting(HttpStatusCodeException::getStatusCode)
|
||||
.isEqualTo(HttpStatus.FORBIDDEN);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -34,7 +34,7 @@ class TaskCommentRepresentationModelAssemblerTest {
|
|||
|
||||
taskComment.setId("taskCommentId");
|
||||
taskComment.setCreator("user-1-1");
|
||||
taskComment.setCreatorLongName("longName");
|
||||
taskComment.setCreatorFullName("fullName");
|
||||
taskComment.setTextField("this is a task comment");
|
||||
taskComment.setCreated(Instant.parse("2010-01-01T12:00:00Z"));
|
||||
taskComment.setModified(Instant.parse("2011-11-11T11:00:00Z"));
|
||||
|
@ -52,7 +52,7 @@ class TaskCommentRepresentationModelAssemblerTest {
|
|||
repModel.setTaskId("TKI:000000000000000000000000000000000000");
|
||||
repModel.setTaskCommentId("TCI:000000000000000000000000000000000000");
|
||||
repModel.setCreator("user-1-1");
|
||||
repModel.setCreatorLongName("longName");
|
||||
repModel.setCreatorFullName("fullName");
|
||||
repModel.setCreated(Instant.parse("2010-01-01T12:00:00Z"));
|
||||
repModel.setModified(Instant.parse("2011-11-11T11:00:00Z"));
|
||||
repModel.setTextField("textField");
|
||||
|
@ -68,7 +68,7 @@ class TaskCommentRepresentationModelAssemblerTest {
|
|||
(TaskCommentImpl) taskService.newTaskComment("TKI:000000000000000000000000000000000000");
|
||||
taskComment.setId("taskCommentId");
|
||||
taskComment.setCreator("user-1-1");
|
||||
taskComment.setCreatorLongName("longName");
|
||||
taskComment.setCreatorFullName("fullName");
|
||||
taskComment.setTextField("this is a task comment");
|
||||
taskComment.setCreated(Instant.parse("2010-01-01T12:00:00Z"));
|
||||
taskComment.setModified(Instant.parse("2011-11-11T11:00:00Z"));
|
||||
|
@ -89,7 +89,7 @@ class TaskCommentRepresentationModelAssemblerTest {
|
|||
assertThat(taskComment.getTaskId()).isEqualTo(repModel.getTaskId());
|
||||
assertThat(taskComment.getTextField()).isEqualTo(repModel.getTextField());
|
||||
assertThat(taskComment.getCreator()).isEqualTo(repModel.getCreator());
|
||||
assertThat(taskComment.getCreatorLongName()).isEqualTo(repModel.getCreatorLongName());
|
||||
assertThat(taskComment.getCreatorFullName()).isEqualTo(repModel.getCreatorFullName());
|
||||
assertThat(taskComment.getCreated()).isEqualTo(repModel.getCreated());
|
||||
assertThat(taskComment.getModified()).isEqualTo(repModel.getModified());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue