package seedu.unburden.testutil;

import seedu.unburden.model.tag.UniqueTagList;
import seedu.unburden.model.task.*;

/**
 * A mutable person object. For testing only.
 */
public class TestTask implements ReadOnlyTask {

    private Name name;
    private TaskDescription taskD;
    private Date date;
    private Time startTime;
    private Time endTime;
    private UniqueTagList tags;
    private boolean done;

    public TestTask() {
        tags = new UniqueTagList();
    }

    public void setName(Name name) {
        this.name = name;
    }

    @Override
    public Name getName() {
        return name;
    }
    
    @Override
    public TaskDescription getTaskDescription() {
        return taskD;
    }
    
    @Override
    public Date getDate() {
        return date;
    }
    
    @Override
    public Time getStartTime() {
        return startTime;
    }
    
    @Override
    public Time getEndTime() {
        return endTime;
    }

    @Override
    public UniqueTagList getTags() {
        return tags;
    }

    @Override
    public String toString() {
        return getAsText();
    }

    public String getAddCommand() {
        StringBuilder sb = new StringBuilder();
        sb.append("add " + this.getName().getFullName() + " ");
        this.getTags().getInternalList().stream().forEach(s -> sb.append("t/" + s.tagName + " "));
        return sb.toString();
    }

	@Override
	public boolean getDone() {
		return done;
	}

	@Override
	public String getDoneString() {
		if(done == true){
			return "Task Done!";
		}
		else{
			return "Task unDone!";
		}
	}
}

@@ -165,12 +165,32 @@
 ly.%0A
+ * Author A0147986H%0A
  */%0A
-
 publ
@@ -499,78 +499,8 @@
  %7D%0A%0A
-    public void setName(Name name) %7B%0A        this.name = name;%0A    %7D%0A%0A
     
@@ -891,33 +891,37 @@
  endTime;%0A    %7D%0A
+    
 %0A
-
     @Override%0A  
@@ -974,32 +974,574 @@
 urn tags;%0A    %7D%0A
+    %0A    public void setName(Name name) %7B%0A        this.name = name;%0A    %7D%0A    %0A    %0A    public void setTaskDescription(TaskDescription taskD) %7B%0A        this.taskD = taskD;%0A    %7D%0A      %0A    %0A    public void setDate(Date date) %7B%0A        this.date = date;%0A    %7D%0A    %0A    %0A    public void setStartTime(Time startTime) %7B%0A        this.startTime = startTime;%0A    %7D%0A    %0A    %0A    public void setEndTime(Time endTime)%7B%0A        this.endTime = endTime;%0A    %7D%0A    %0A    %0A    public void setTags(UniqueTagList taskD) %7B%0A        this.tags = taskD;%0A    %7D%0A    
 %0A    @Override%0A 

Add more methods in TestTask