package seedu.scheduler.testutil;

import seedu.scheduler.model.tag.UniqueTagList;
import seedu.scheduler.model.entry.*;

/**
 * A mutable entry object. For testing only.
 */
public class TestEntry implements ReadOnlyEntry {

    private Name name;
    private Date date;
    private EndTime endTime;
    private StartTime startTime;
    private EndDate endDate;
    private UniqueTagList tags;

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

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

    public void setDate(Date date) {
        this.date = date;
    }
    
    public void setEndDate(EndDate endDate) {
        this.endDate = endDate;
    }

    public void setEndTime(EndTime endTime) {
        this.endTime = endTime;
    }

    public void setStartTime(StartTime startTime) {
        this.startTime = startTime;
    }

    @Override
    public Name getName() {
        return name;
    }

    @Override
    public StartTime getStartTime() {
        return startTime;
    }

    @Override
    public EndTime getEndTime() {
        return endTime;
    }

    @Override
    public Date getDate() {
        return date;
    }
    
    @Override
    public EndDate getEndDate() {
        return endDate;
    }

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

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

    public String getAddCommand() {
        StringBuilder sb = new StringBuilder();
        sb.append("add " + this.getName().fullName + " ");
        sb.append("st/" + this.getStartTime().value + " ");
        sb.append("et/" + this.getEndTime().value + " ");
        sb.append("d/" + this.getDate().value + " ");
        this.getTags().getInternalList().stream().forEach(s -> sb.append("t/" + s.tagName + " "));
        return sb.toString();
    }
    
    public String getAdvancedAddCommand() {
        StringBuilder sb = new StringBuilder();
        sb.append("a " + this.getName().fullName + " ");
        sb.append("st/" + this.getStartTime().value + " ");
        sb.append("et/" + this.getEndTime().value + " ");
        sb.append("d/" + this.getDate().value + " ");
        this.getTags().getInternalList().stream().forEach(s -> sb.append("t/" + s.tagName + " "));
        return sb.toString();
    }

    public String getEditCommand(int targetIndexOneIndexed) {
        StringBuilder sb = new StringBuilder();
        sb.append("edit " + Integer.toString(targetIndexOneIndexed) + " ");
        sb.append(this.getName().fullName + " ");
        sb.append("st/" + this.getStartTime().value + " ");
        sb.append("et/" + this.getEndTime().value + " ");
        sb.append("d/" + this.getDate().value + " ");
        this.getTags().getInternalList().stream().forEach(s -> sb.append("t/" + s.tagName + " "));
        return sb.toString();
    }
}

@@ -1684,32 +1684,33 @@
      sb.append(%22
+s
 d/%22 + this.getDa
@@ -1720,32 +1720,90 @@
 ).value + %22 %22);%0A
+        sb.append(%22ed/%22 + this.getEndDate().value + %22 %22);%0A
         this.get
@@ -2204,32 +2204,33 @@
      sb.append(%22
+s
 d/%22 + this.getDa
@@ -2240,32 +2240,90 @@
 ).value + %22 %22);%0A
+        sb.append(%22ed/%22 + this.getEndDate().value + %22 %22);%0A
         this.get
@@ -2618,16 +2618,20 @@
 eIndexed
+ + 1
 ) + %22 %22)
@@ -2819,16 +2819,17 @@
 append(%22
+s
 d/%22 + th
@@ -2847,32 +2847,90 @@
 ).value + %22 %22);%0A
+        sb.append(%22ed/%22 + this.getEndDate().value + %22 %22);%0A
         this.get

Fix getAddCommand and getEditCommand (does not match format)