blob: d5f4e3259ad6846a0b3a32f5c439c756e6db2ea0 [file] [log] [blame]
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;
}
}
}