public void Create_Priority_In_Body() { var task = new Task("Oh (A) This is a test task @work +test "); var expectedTask = new Task("", _projects, _contexts, "Oh (A) This is a test task"); AssertEquivalence(expectedTask, task); }
public void Add(Task task) { try { var output = task.ToString(); Log.Debug("Adding task '{0}'", output); var text = File.ReadAllText(_filePath); if (text.Length > 0 && !text.EndsWith(Environment.NewLine)) output = Environment.NewLine + output; File.AppendAllLines(_filePath, new string[] { output }); Log.Debug("Task '{0}' added", output); ReloadTasks(); } catch (IOException ex) { var msg = "An error occurred while trying to add your task to the task list file"; Log.Error(msg, ex); throw new TaskException(msg, ex); } catch (Exception ex) { Log.Error(ex.ToString()); throw; } }
public void Create_Priority_Context_Project_Body() { var task = new Task("(A) @work +test This is a test task"); var expectedTask = new Task("(A)", _projects, _contexts, "This is a test task"); AssertEquivalence(expectedTask, task); }
public void Create_Trailing_Whitespace() { var task = new Task("(A) This is a test task @work +test "); var expectedTask = new Task("(A)", _projects, _contexts, "This is a test task"); AssertEquivalence(expectedTask, task); }
public void Create_UnCompleted() { var task = new Task("(A) @work +test This is a test task"); var expectedTask = new Task("(A)", _projects, _contexts, "This is a test task"); AssertEquivalence(expectedTask, task); }
public void Add_ToFile() { var fileContents = File.ReadAllLines(Data.TestDataPath).ToList(); fileContents.Add("(B) Add_ToFile +test @task"); var task = new Task(fileContents.Last()); var tl = new TaskList(Data.TestDataPath); tl.Add(task); var newFileContents = File.ReadAllLines(Data.TestDataPath); CollectionAssert.AreEquivalent(fileContents, newFileContents); }
public void Add_Multiple() { var tl = new TaskList(Data.TestDataPath); var c = tl.Tasks.Count(); var task = new Task("Add_Multiple task one"); tl.Add(task); var task2 = new Task("Add_Multiple task two"); tl.Add(task2); Assert.AreEqual(c + 2, tl.Tasks.Count()); }
public void Delete(Task task) { try { ReloadTasks(); // make sure we're working on the latest file if (_tasks.Remove(_tasks.First(t => t.Raw == task.Raw))) File.WriteAllLines(_filePath, _tasks.Select(t => t.ToString())); ReloadTasks(); } catch (IOException ex) { throw new TaskException("An error occurred while trying to remove your task from the task list file", ex); } }
public void Add_ToCollection() { var task = new Task("(B) Add_ToCollection +test @task"); var tl = new TaskList(Data.TestDataPath); var tasks = new List<Task>(tl.Tasks); tasks.Add(task); tl.Add(task); var newTasks = tl.Tasks.ToList(); Assert.AreEqual(tasks.Count, newTasks.Count); for (int i = 0; i < tasks.Count; i++) Assert.AreEqual(tasks[i].ToString(), newTasks[i].ToString()); }
public void Update(Task currentTask, Task newTask) { try { ReloadTasks(); var currentIndex = _tasks.IndexOf(_tasks.First(t => t.Raw == currentTask.Raw)); _tasks[currentIndex] = newTask; File.WriteAllLines(_filePath, _tasks.Select(t => t.ToString())); } catch (IOException ex) { throw new TaskException("An error occurred while trying to update your task int the task list file", ex); } ReloadTasks(); }
static ConsoleColor GetConsoleColorForTask(Task task) { switch (task.Priority) { case "(A)": return ConsoleColor.Yellow; case "(B)": return ConsoleColor.Green; case "(C)": return ConsoleColor.Blue; case "(D)": return ConsoleColor.Magenta; } return Console.ForegroundColor; }
public void Add(Task task) { try { var output = task.ToString(); var text = File.ReadAllText(_filePath); if (text.Length > 0 && !text.EndsWith(Environment.NewLine)) output = Environment.NewLine + output; File.AppendAllLines(_filePath, new string[] { output }); ReloadTasks(); } catch (IOException ex) { throw new TaskException("An error occurred while trying to add your task to the task list file", ex); } }
public void ReloadTasks() { try { _tasks = new List<Task>(); var i = 0; var file = File.OpenRead(_filePath); using (var reader = new StreamReader(file)) { string raw; while ((raw = reader.ReadLine()) != null) { if (raw.Trim() == "") continue; var task = new Task(i++, raw); Projects.AddRange(task.Projects.Where(s => !Projects.Contains(s))); Contexts.AddRange(task.Contexts.Where(s => !Contexts.Contains(s))); _tasks.Add(task); } } } catch (IOException ex) { var msg = "There was a problem trying to read from your todo.txt file"; throw new TaskException(msg, ex); } }
public void Update(Task currentTask, Task newTask) { try { Log.Debug("Updating task '{0}' to '{1}'", currentTask.ToString(), newTask.ToString()); ReloadTasks(); // ensure that the task list still contains the current task... if (!Tasks.Any(t => t.Raw == currentTask.Raw)) throw new Exception("That task no longer exists in to todo.txt file"); var currentIndex = Tasks.IndexOf(Tasks.First(t => t.Raw == currentTask.Raw)); Tasks[currentIndex] = newTask; WriteAllTasksToFile(); Log.Debug("Task '{0}' updated", currentTask.ToString()); ReloadTasks(); } catch (IOException ex) { var msg = "An error occurred while trying to update your task int the task list file"; Log.Error(msg, ex); throw new TaskException(msg, ex); } catch (Exception ex) { Log.Error(ex.ToString()); throw; } }
public void Delete_InCollection() { var task = new Task("(B) Delete_InCollection +test @task"); var tl = new TaskList(Data.TestDataPath); tl.Add(task); var tasks = new List<Task>(tl.Tasks); tasks.Remove(tasks.Where(x => x.Raw == task.Raw).First()); tl.Delete(task); var newTasks = tl.Tasks.ToList(); Assert.AreEqual(tasks.Count, newTasks.Count); for (int i = 0; i < tasks.Count; i++) Assert.AreEqual(tasks[i].ToString(), newTasks[i].ToString()); }
public void Create_CreationDate() { var task = new Task("(A) 2011-05-07 due:2011-05-08 @work @home +test This is a test task"); Assert.AreEqual("2011-05-07", task.CreationDate); }
public void Create_CompletedData() { var task = new Task("X 2011-05-10 (A) @work +test This is a test task"); Assert.AreEqual("2011-05-10", task.CompletedDate); }
public void Completed_adds_x_to_begining() { var t = new Task("A new task"); t.Completed = true; }
public void Task_Complete_with_over_due_date() { var t = new Task("x Task Complete with overdue date due:" + DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd")); Assert.AreEqual(t.IsTaskDue, 1); }
public void Delete_InFile() { var fileContents = File.ReadAllLines(Data.TestDataPath).ToList(); var task = new Task(fileContents.Last()); fileContents.Remove(fileContents.Last()); var tl = new TaskList(Data.TestDataPath); tl.Delete(task); var newFileContents = File.ReadAllLines(Data.TestDataPath); CollectionAssert.AreEquivalent(fileContents, newFileContents); }
public void Create_Multiple_Contexts() { var task = new Task("(A) @work @home +test This is a test task"); var expectedTask = new Task("(A)", _projects, new List<string>(){"@work" , "@home"} , "This is a test task"); AssertEquivalence(expectedTask, task); }
public void Create_Multiple_Projects() { var task = new Task("(A) @work +test +test2 This is a test task"); var expectedTask = new Task("(A)", new List<string>(){"+test", "+test2"}, _contexts, "This is a test task"); AssertEquivalence(expectedTask, task); }
public void ToString_From_Raw() { var task = new Task("(A) @work +test This is a test task"); Assert.AreEqual("(A) @work +test This is a test task", task.ToString()); }
public void ToString_From_Parameters() { var task = new Task("(A)", _projects, _contexts, "This is a test task"); Assert.AreEqual("(A) This is a test task +test @work", task.ToString()); }
public void Update(Task currentTask, Task newTask) { try { AutoReloadTasks(); // ensure that the task list still contains the current task... if (!_tasks.Any(t => t.Raw == currentTask.Raw)) throw new Exception("That task no longer exists in to todo.txt file"); var currentIndex = _tasks.IndexOf(_tasks.First(t => t.Raw == currentTask.Raw)); _tasks[currentIndex] = newTask; File.WriteAllLines(_filePath, _tasks.Select(t => t.ToString())); AutoReloadTasks(); } catch (IOException ex) { var msg = "An error occurred while trying to update your task int the task list file"; throw new TaskException(msg, ex); } }
public void Update_InCollection() { var task = new Task("(B) Update_InCollection +test @task"); var tl = new TaskList(Data.TestDataPath); tl.Add(task); var task2 = new Task(task.Raw); task2.Completed = true; tl.Update(task, task2); var newTask = tl.Tasks.Last(); Assert.IsTrue(newTask.Completed); }
public void Update(Task currentTask, Task newTask) { try { Log.Debug("Updating task '{0}' to '{1}'", currentTask.ToString(), newTask.ToString()); ReloadTasks(); var currentIndex = _tasks.IndexOf(_tasks.First(t => t.Raw == currentTask.Raw)); _tasks[currentIndex] = newTask; File.WriteAllLines(_filePath, _tasks.Select(t => t.ToString())); Log.Debug("Task '{0}' updated", currentTask.ToString()); ReloadTasks(); } catch (IOException ex) { var msg = "An error occurred while trying to update your task int the task list file"; Log.Error(msg, ex); throw new TaskException(msg, ex); } catch (Exception ex) { Log.Error(ex.ToString()); throw; } }
public void Create_DueDate() { var task = new Task("(A) due:2011-05-08 @work @home +test This is a test task"); var expectedTask = new Task("(A)", _projects, new List<string>() { "@work", "@home" }, "This is a test task","2011-05-08", false); AssertEquivalence(expectedTask, task); }
public void Delete(Task task) { try { Log.Debug("Deleting task '{0}'", task.ToString()); ReloadTasks(); // make sure we're working on the latest file if (_tasks.Remove(_tasks.First(t => t.Raw == task.Raw))) File.WriteAllLines(_filePath, _tasks.Select(t => t.ToString())); Log.Debug("Task '{0}' deleted", task.ToString()); ReloadTasks(); } catch (IOException ex) { var msg = "An error occurred while trying to remove your task from the task list file"; Log.Error(msg, ex); throw new TaskException(msg, ex); } catch (Exception ex) { Log.Error(ex.ToString()); throw; } }
void AssertEquivalence(Task t1, Task t2) { Assert.AreEqual(t1.Priority, t2.Priority); CollectionAssert.AreEquivalent(t1.Projects, t2.Projects); CollectionAssert.AreEquivalent(t1.Contexts, t2.Contexts); Assert.AreEqual(t1.DueDate, t2.DueDate); Assert.AreEqual(t1.Completed, t2.Completed); Assert.AreEqual(t1.Body, t2.Body); }