Search in sources :

Example 1 with Comment

use of org.kie.api.task.model.Comment in project jbpm by kiegroup.

the class AddCommentCommand method execute.

public Long execute(Context cntxt) {
    TaskContext context = (TaskContext) cntxt;
    Comment cmdComent = comment;
    if (cmdComent == null) {
        cmdComent = jaxbComment;
    }
    InternalComment commentImpl = (InternalComment) TaskModelProvider.getFactory().newComment();
    commentImpl.setAddedAt(cmdComent.getAddedAt());
    User cmdAddedBy = cmdComent.getAddedBy();
    User addedBy = TaskModelProvider.getFactory().newUser(cmdAddedBy.getId());
    commentImpl.setAddedBy(addedBy);
    commentImpl.setText(cmdComent.getText());
    doCallbackOperationForComment(commentImpl, context);
    return context.getTaskCommentService().addComment(taskId, commentImpl);
}
Also used : JaxbComment(org.jbpm.services.task.impl.model.xml.JaxbComment) Comment(org.kie.api.task.model.Comment) InternalComment(org.kie.internal.task.api.model.InternalComment) User(org.kie.api.task.model.User) InternalComment(org.kie.internal.task.api.model.InternalComment)

Example 2 with Comment

use of org.kie.api.task.model.Comment in project jbpm by kiegroup.

the class TaskCommentTest method testTaskComment.

@Test
public void testTaskComment() throws Exception {
    String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
    str += "peopleAssignments = (with ( new PeopleAssignments() ) { businessAdministrators = [new User('Bobba Fet')], }),";
    str += "name =  'This is my task name' })";
    Task task = TaskFactory.evalTask(new StringReader(str));
    taskService.addTask(task, new HashMap<String, Object>());
    List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministrator("Bobba Fet", "en-UK");
    String txt = "brainwashArmitageRecruitCaseGetPasswordFromLady3JaneAscentToStraylightIcebreakerUniteWithNeuromancer";
    assertEquals(1, tasks.size());
    TaskSummary taskSum = tasks.get(0);
    Comment comment = TaskModelProvider.getFactory().newComment();
    ((InternalComment) comment).setAddedAt(TODAY);
    User user = TaskModelProvider.getFactory().newUser();
    ((InternalOrganizationalEntity) user).setId("Troll");
    ((InternalComment) comment).setAddedBy(user);
    ((InternalComment) comment).setText(txt);
    Long commentId = taskService.addComment(taskSum.getId().longValue(), comment);
    assertNotNull(commentId);
    assertTrue(commentId.longValue() > 0l);
    Comment commentById = taskService.getCommentById(commentId.longValue());
    assertNotNull(commentById);
    assertEquals(commentId, commentById.getId());
    Assertions.assertThat(commentById.getAddedAt()).isCloseTo(TODAY, 1000);
    assertEquals(user, commentById.getAddedBy());
    assertEquals(txt, commentById.getText());
    Comment comment2 = TaskModelProvider.getFactory().newComment();
    ((InternalComment) comment2).setAddedAt(new Date());
    User user2 = TaskModelProvider.getFactory().newUser();
    ((InternalOrganizationalEntity) user2).setId("Master");
    ((InternalComment) comment2).setAddedBy(user2);
    ((InternalComment) comment2).setText(txt + "asdf");
    Long commentId2 = taskService.addComment(taskSum.getId(), comment2);
    assertNotNull(commentId2);
    assertTrue(commentId2.longValue() > 0l);
    assertNotEquals(commentId, commentId2);
    Comment commentById2 = taskService.getCommentById(commentId2.longValue());
    assertNotNull(commentById2);
    assertNotEquals(commentById, commentById2);
    List<Comment> allCommentList = taskService.getAllCommentsByTaskId(taskSum.getId());
    assertEquals(2, allCommentList.size());
    // check id
    assertEquals(commentId, allCommentList.get(0).getId());
    assertEquals(commentId2, allCommentList.get(1).getId());
    taskService.deleteComment(taskSum.getId(), commentId2);
    assertFalse(taskService.getAllCommentsByTaskId(taskSum.getId()).isEmpty());
    // one item
    allCommentList = taskService.getAllCommentsByTaskId(taskSum.getId());
    assertEquals(1, allCommentList.size());
    taskService.deleteComment(taskSum.getId(), commentId);
    assertTrue(taskService.getAllCommentsByTaskId(taskSum.getId()).isEmpty());
}
Also used : InternalComment(org.kie.internal.task.api.model.InternalComment) Comment(org.kie.api.task.model.Comment) Task(org.kie.api.task.model.Task) User(org.kie.api.task.model.User) InternalComment(org.kie.internal.task.api.model.InternalComment) InternalOrganizationalEntity(org.kie.internal.task.api.model.InternalOrganizationalEntity) Date(java.util.Date) StringReader(java.io.StringReader) TaskSummary(org.kie.api.task.model.TaskSummary) Test(org.junit.Test)

Example 3 with Comment

use of org.kie.api.task.model.Comment in project jbpm by kiegroup.

the class TaskCommentTest method testTaskCommentsOrder.

@Test
public void testTaskCommentsOrder() {
    int commentsCount = 50;
    String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
    str += "peopleAssignments = (with ( new PeopleAssignments() ) { businessAdministrators = [new User('Bobba Fet')], }),";
    str += "name =  'This is my task name' })";
    Task task = TaskFactory.evalTask(new StringReader((str)));
    taskService.addTask(task, new HashMap<String, Object>());
    List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministrator("Bobba Fet", "en-UK");
    TaskSummary taskSum = tasks.get(0);
    final Map<Long, Comment> savedComments = new HashMap<>();
    for (int i = 0; i < commentsCount; i++) {
        Comment comment = TaskModelProvider.getFactory().newComment();
        ((InternalComment) comment).setAddedAt(TODAY);
        User user = TaskModelProvider.getFactory().newUser();
        ((InternalOrganizationalEntity) user).setId("Troll");
        ((InternalComment) comment).setAddedBy(user);
        ((InternalComment) comment).setText("Comment " + i + ".");
        final Long commentId = taskService.addComment(taskSum.getId(), comment);
        assertNotNull(commentId);
        savedComments.put(commentId, comment);
    }
    List<Comment> allCommentList = taskService.getAllCommentsByTaskId(taskSum.getId());
    assertEquals(commentsCount, allCommentList.size());
    Long lastId = 0L;
    for (Comment comment : allCommentList) {
        assertNotNull(comment);
        assertNotNull(comment.getId());
        assertTrue(comment.getId() > lastId);
        Comment savedComment = savedComments.get(comment.getId());
        assertNotNull(savedComment);
        assertNotNull(comment.getAddedAt());
        Assertions.assertThat(comment.getAddedAt()).isCloseTo(TODAY, 1000);
        assertEquals(savedComment.getText(), comment.getText());
        assertEquals("Troll", comment.getAddedBy().getId());
        lastId = comment.getId();
    }
}
Also used : InternalComment(org.kie.internal.task.api.model.InternalComment) Comment(org.kie.api.task.model.Comment) Task(org.kie.api.task.model.Task) User(org.kie.api.task.model.User) HashMap(java.util.HashMap) InternalComment(org.kie.internal.task.api.model.InternalComment) InternalOrganizationalEntity(org.kie.internal.task.api.model.InternalOrganizationalEntity) StringReader(java.io.StringReader) TaskSummary(org.kie.api.task.model.TaskSummary) Test(org.junit.Test)

Example 4 with Comment

use of org.kie.api.task.model.Comment in project jbpm by kiegroup.

the class ETaskCommentTest method getComment.

private Comment getComment(Long taskId) {
    List<Comment> commentList = getComments(taskId);
    Comment comment = null;
    if (!commentList.isEmpty()) {
        comment = commentList.get(0);
    }
    return comment;
}
Also used : Comment(org.kie.api.task.model.Comment)

Example 5 with Comment

use of org.kie.api.task.model.Comment in project jbpm by kiegroup.

the class ETaskCommentTest method testUserComment.

@Test
public void testUserComment() {
    ProcessInstance pi = ejb.startAndGetProcess(ProcessDefinitions.HUMAN_TASK);
    Assertions.assertThat(pi).isNotNull();
    Assertions.assertThat(pi.getState()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    List<TaskSummary> taskSummaryList = ejb.getTasksAssignedAsPotentialOwner(userId);
    Assertions.assertThat(taskSummaryList.size()).isEqualTo(1);
    // Add a comment
    Long taskId = taskSummaryList.get(0).getId();
    ejb.addComment(taskId, COMMENT, userId, TODAY);
    // Get the comment
    Comment comment = getComment(taskId);
    Assertions.assertThat(comment.getText()).isEqualTo(COMMENT);
    Assertions.assertThat(comment.getAddedBy().getId()).isEqualTo(userId);
    // Note: must ignore millis because some databases ignore them by default which is the same
    // as setting them to 0. This will do a very small difference in the time and equals
    // will fail. Moreover, some databases are rounding this value, therefore we cannot use
    // isEqualToIgnoringMillis() method.
    Assertions.assertThat(comment.getAddedAt()).isCloseTo(TODAY, 1000);
    // Delete the comment
    ejb.deleteComment(taskId, comment.getId());
    comment = getComment(taskId);
    Assertions.assertThat(comment).isNull();
}
Also used : Comment(org.kie.api.task.model.Comment) TaskSummary(org.kie.api.task.model.TaskSummary) ProcessInstance(org.kie.api.runtime.process.ProcessInstance) RemoteEjbTest(org.jbpm.remote.ejb.test.RemoteEjbTest) Test(org.junit.Test)

Aggregations

Comment (org.kie.api.task.model.Comment)12 Test (org.junit.Test)7 Date (java.util.Date)5 User (org.kie.api.task.model.User)5 InternalComment (org.kie.internal.task.api.model.InternalComment)5 Task (org.kie.api.task.model.Task)4 TaskSummary (org.kie.api.task.model.TaskSummary)4 StringReader (java.io.StringReader)3 ArrayList (java.util.ArrayList)2 RemoteEjbTest (org.jbpm.remote.ejb.test.RemoteEjbTest)2 ProcessInstance (org.kie.api.runtime.process.ProcessInstance)2 InternalOrganizationalEntity (org.kie.internal.task.api.model.InternalOrganizationalEntity)2 InternalTask (org.kie.internal.task.api.model.InternalTask)2 HashMap (java.util.HashMap)1 List (java.util.List)1 AbstractKieServicesBaseTest (org.jbpm.kie.test.util.AbstractKieServicesBaseTest)1 CommentImpl (org.jbpm.services.task.impl.model.CommentImpl)1 JaxbComment (org.jbpm.services.task.impl.model.xml.JaxbComment)1 Attachment (org.kie.api.task.model.Attachment)1 I18NText (org.kie.api.task.model.I18NText)1