public void ItShouldFilterTasksByTag() { TaskList testList = new TaskList(); Task testTask1 = new Task(); testTask1.TaskDescription = "First task"; testTask1.TaskId = "AAAA"; Task testTask2 = new Task(); testTask2.TaskDescription = "Second"; testTask2.TaskId = "BBBB"; Task testTask3 = new Task(); testTask3.TaskId = "CCCC"; testTask3.TaskDescription = "Third task"; testList.AddTask(ref testTask1); testList.AddTask(ref testTask2); testList.AddTask(ref testTask3); TaskTagger tagTasks = new TaskTagger(testList.GetTasks()); tagTasks.AssignTag(testTask1.TaskId, "funny"); tagTasks.AssignTag(testTask2.TaskId, "sad"); tagTasks.AssignTag(testTask3.TaskId, "funny"); testList.SetTasks(tagTasks.GetTasks()); List<Task> filteredList = testList.FilterByTag("funny"); var actual = filteredList; var expected = new List<Task>(); expected.Add(testList.GetTask(0)); expected.Add(testList.GetTask(2)); CollectionAssert.AreEqual(expected, actual); }