| package com.intellij.tasks; |
| |
| import com.intellij.tasks.impl.TaskUtil; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| import javax.swing.*; |
| import java.util.Date; |
| import java.util.List; |
| |
| import static junit.framework.Assert.assertTrue; |
| |
| /** |
| * @author Mikhail Golubev |
| */ |
| public class TaskTestUtil { |
| public static void assertTasksEqual(@NotNull Task t1, @NotNull Task t2) { |
| assertTrue(TaskUtil.tasksEqual(t1, t2)); |
| } |
| |
| public static void assertTasksEqual(@NotNull List<? extends Task> t1, @NotNull List<? extends Task> t2) { |
| assertTrue(TaskUtil.tasksEqual(t1, t2)); |
| } |
| |
| public static void assertTasksEqual(@NotNull Task[] t1, @NotNull Task[] t2) { |
| assertTrue(TaskUtil.tasksEqual(t1, t2)); |
| } |
| |
| /** |
| * Auxiliary builder class to simplify comparison of server responses parsing results. |
| * |
| * @see #assertTasksEqual(Task, Task) |
| */ |
| public static class TaskBuilder extends Task { |
| private String myId; |
| private String mySummary; |
| private TaskRepository myRepository; |
| private String myDescription; |
| private String myIssueUrl; |
| private Comment[] myComments = Comment.EMPTY_ARRAY; |
| private Icon myIcon; |
| private TaskType myType = TaskType.OTHER; |
| private TaskState myState; |
| private Date myCreated; |
| private Date myUpdated; |
| private boolean myClosed = false; |
| private boolean myIssue = true; |
| |
| public TaskBuilder(String id, String summary, TaskRepository repository) { |
| myId = id; |
| mySummary = summary; |
| myRepository = repository; |
| } |
| |
| public TaskBuilder withDescription(@Nullable String description) { |
| myDescription = description; |
| return this; |
| } |
| |
| public TaskBuilder withIssueUrl(@Nullable String issueUrl) { |
| myIssueUrl = issueUrl; |
| return this; |
| } |
| |
| public TaskBuilder withComments(@NotNull Comment... comments) { |
| myComments = comments; |
| return this; |
| } |
| |
| public TaskBuilder withClosed(boolean isClosed) { |
| myClosed = isClosed; |
| return this; |
| } |
| |
| public TaskBuilder withIssue(boolean isIssue) { |
| myIssue = isIssue; |
| return this; |
| } |
| |
| public TaskBuilder withUpdated(@Nullable Date updated) { |
| myUpdated = updated; |
| return this; |
| } |
| |
| public TaskBuilder withUpdated(@NotNull String updated) { |
| return withUpdated(TaskUtil.parseDate(updated)); |
| } |
| |
| public TaskBuilder withCreated(@Nullable Date created) { |
| myCreated = created; |
| return this; |
| } |
| |
| public TaskBuilder withCreated(@NotNull String created) { |
| return withCreated(TaskUtil.parseDate(created)); |
| } |
| |
| public TaskBuilder withType(@NotNull TaskType type) { |
| myType = type; |
| return this; |
| } |
| |
| public TaskBuilder withState(@Nullable TaskState state) { |
| myState = state; |
| return this; |
| } |
| |
| public TaskBuilder withIcon(@Nullable Icon icon) { |
| myIcon = icon; |
| return this; |
| } |
| |
| @NotNull |
| @Override |
| public String getId() { |
| return myId; |
| } |
| |
| @NotNull |
| @Override |
| public String getSummary() { |
| return mySummary; |
| } |
| |
| @Nullable |
| @Override |
| public String getDescription() { |
| return myDescription; |
| } |
| |
| @NotNull |
| @Override |
| public Comment[] getComments() { |
| return myComments; |
| } |
| |
| @NotNull |
| @Override |
| public Icon getIcon() { |
| return myIcon == null? myRepository.getIcon() : myIcon; |
| } |
| |
| @NotNull |
| @Override |
| public TaskType getType() { |
| return myType; |
| } |
| |
| @Nullable |
| @Override |
| public TaskState getState() { |
| return myState; |
| } |
| |
| @Nullable |
| @Override |
| public Date getUpdated() { |
| return myUpdated; |
| } |
| |
| @Nullable |
| @Override |
| public Date getCreated() { |
| return myCreated; |
| } |
| |
| @Override |
| public boolean isClosed() { |
| return myClosed; |
| } |
| |
| @Override |
| public boolean isIssue() { |
| return myIssue; |
| } |
| |
| @Nullable |
| @Override |
| public String getIssueUrl() { |
| return myIssueUrl; |
| } |
| |
| @Nullable |
| @Override |
| public TaskRepository getRepository() { |
| return myRepository; |
| } |
| } |
| |
| |
| } |