package seedu.taskboss.testutil;

import seedu.taskboss.commons.exceptions.IllegalValueException;
import seedu.taskboss.model.TaskBoss;
import seedu.taskboss.model.task.Task;
import seedu.taskboss.model.task.UniqueTaskList;

/**
 *
 */
public class TypicalTestTasks {

    public TestTask taskA, taskB, taskC, taskD, taskE, taskF, taskG, taskH, taskI, taskJ, taskK;

    public TypicalTestTasks() {
        try {
            taskA = new TaskBuilder().withName("Alice Pauline")
                    .withInformation("123, Jurong West Ave 6, #08-111")
                    .withPriorityLevel("Yes")
                    .withStartDateTime("Feb 18, 2017 5pm")
                    .withEndDateTime("Mar 28, 2017 5pm")
                    .withCategories("friends").build();
            taskB = new TaskBuilder().withName("Benson Meier")
                    .withInformation("311, Clementi Ave 2, #02-25")
                    .withPriorityLevel("No")
                    .withStartDateTime("Feb 23, 2017 10pm")
                    .withEndDateTime("Jun 28, 2017 5pm")
                    .withCategories("owesMoney", "friends").build();
            taskC = new TaskBuilder().withName("Carl Kurz").withPriorityLevel("Yes")
                    .withStartDateTime("Feb 19, 2017 11pm")
                    .withEndDateTime("Feb 28, 2017 5pm")
                    .withInformation("wall street").build();
            taskD = new TaskBuilder().withName("Daniel Meier").withPriorityLevel("Yes")
                    .withStartDateTime("Feb 20, 2017 11.30pm")
                    .withEndDateTime("Apr 28, 2017 3pm")
                    .withInformation("10th street").build();
            taskE = new TaskBuilder().withName("Elle Meyer").withPriorityLevel("No")
                    .withStartDateTime("Feb 22, 2017 5pm")
                    .withEndDateTime("Feb 28, 2017 5pm")
                    .withInformation("michegan ave").build();
            taskF = new TaskBuilder().withName("Fiona Kunz").withPriorityLevel("No")
                    .withStartDateTime("Feb 21, 2017 1pm")
                    .withEndDateTime("Dec 10, 2017 5pm")
                    .withInformation("little tokyo").build();
            taskG = new TaskBuilder().withName("George Best").withPriorityLevel("Yes")
                    .withStartDateTime("Jan 1, 2017 5pm")
                    .withEndDateTime("Nov 28, 2017 5pm")
                    .withInformation("4th street").build();

            // Manually added
            taskH = new TaskBuilder().withName("Hoon Meier").withPriorityLevel("Yes")
                    .withStartDateTime("Feb 19, 2018 5pm")
                    .withEndDateTime("Feb 28, 2018 5pm")
                    .withInformation("little india").build();
            taskI = new TaskBuilder().withName("Ida Mueller").withPriorityLevel("Yes")
                    .withStartDateTime("Feb 19, 2019 5pm")
                    .withEndDateTime("Feb 28, 2019 5pm")
                    .withInformation("chicago ave").build();
            taskJ = new TaskBuilder().withName("Johnny Depp").withPriorityLevel("Yes")
                    .withStartDateTime("next sat 5pm")
                    .withEndDateTime("tomorrow")
                    .withInformation("Silicon Valley").build();
            taskK = new TaskBuilder().withName("Kelvin Koo").withPriorityLevel("Yes")
                    .withStartDateTime("Dec 20 2019")
                    .withEndDateTime("Dec 21 2019")
                    .withInformation("clementi ave 2").build();
        } catch (IllegalValueException e) {
            e.printStackTrace();
            assert false : "not possible";
        }
    }

    public static void loadTaskBossWithSampleData(TaskBoss ab) {
        for (TestTask task : new TypicalTestTasks().getTypicalTasks()) {
            try {
                ab.addTask(new Task(task));
            } catch (UniqueTaskList.DuplicateTaskException e) {
                assert false : "not possible";
            }
        }
    }

    public TestTask[] getTypicalTasks() {
        return new TestTask[]{taskC, taskE, taskA, taskD, taskB, taskG, taskF};
    }

    public TaskBoss getTypicalTaskBoss() {
        TaskBoss ab = new TaskBoss();
        loadTaskBossWithSampleData(ab);
        return ab;
    }
}

@@ -459,20 +459,21 @@
 e(%22A
-lice Pauline
+ttend wedding
 %22)%0A 
@@ -814,19 +814,21 @@
 e(%22B
-enson Meier
+irthday party
 %22)%0A 
@@ -1178,16 +1178,18 @@
 e(%22C
-arl Kurz
+lean house
 %22).w
@@ -1443,19 +1443,17 @@
 e(%22D
-aniel Meier
+ebug code
 %22).w
@@ -1710,17 +1710,26 @@
 e(%22E
-lle Meyer
+nsure code quality
 %22).w
@@ -1983,16 +1983,26 @@
 (%22Fi
-ona Kunz
+x errors in report
 %22).w
@@ -2255,18 +2255,34 @@
 e(%22G
-eorge Best
+ame project player testing
 %22).w
@@ -2511,16 +2511,16 @@
 y added%0A
-
         
@@ -2559,16 +2559,35 @@
 thName(%22
+Having dinner with 
 Hoon Mei

change names of test tasks