public void Reprioritize_Task_Updates_Grid_Read_Model() { string taskId = Fixture.Create <string>(); string oldPriority = TaskPriority.Low.DisplayName; var projectId = Fixture.Create <string>(); using (var session = DocumentStore.OpenSession()) { var taskInGridView = new TaskInGridView(taskId, projectId, Fixture.Create <string>(), Fixture.Create <TaskDeadline>(), oldPriority, false); session.Store(taskInGridView); session.SaveChanges(); } var eventHandler = new TaskReprioritizedEventHandler(DocumentStore); var newPriority = TaskPriority.High.DisplayName; var taskReprioritized = new TaskReprioritized(taskId, oldPriority, newPriority); eventHandler.Handle(taskReprioritized); var taskInGridViewQueryHandler = new TaskInGridViewQueryHandler(); var allTasksInProjectQuery = new AllTasksInProjectQuery(projectId); var tasksInProject = taskInGridViewQueryHandler.Handle(allTasksInProjectQuery); var reprioritizedTask = tasksInProject.First(x => x.Id == taskId); Assert.That(reprioritizedTask.Priority, Is.EqualTo(newPriority)); }
public void Can_Retrieve_All_Tasks_In_Project() { string projectId = Fixture.Create <string>(); string otherProjectId = Fixture.Create <string>(); using (var session = DocumentStore.OpenSession()) { string id1 = Fixture.Create <string>(); var taskInGridView1 = new TaskInGridView(id1, projectId, Fixture.Create <string>(), Fixture.Create <DateTime>().ToShortDateString(), TaskPriority.Lowest.DisplayName, true); string id2 = Fixture.Create <string>(); var taskInGridView2 = new TaskInGridView(id2, projectId, Fixture.Create <string>(), Fixture.Create <DateTime>().ToShortDateString(), TaskPriority.Highest.DisplayName, false); string id3 = Fixture.Create <string>(); var taskInOtherProject = new TaskInGridView(id3, otherProjectId, Fixture.Create <string>(), Fixture.Create <DateTime>().ToShortDateString(), TaskPriority.Highest.DisplayName, false); session.Store(taskInGridView1); session.Store(taskInGridView2); session.Store(taskInOtherProject); session.SaveChanges(); } var taskGridViewQueryHandler = new TaskInGridViewQueryHandler(); var allTasksInProjectQuery = new AllTasksInProjectQuery(projectId); List <TaskInGridView> tasksInGridView = taskGridViewQueryHandler.Handle(allTasksInProjectQuery); Assert.That(tasksInGridView.Count, Is.EqualTo(2)); Assert.That(tasksInGridView.TrueForAll(x => x.ProjectId == projectId)); }
private void AddTaskToGridView(string projectId, string title, string priority, DateTime?deadline) { var taskId = TaskId.Create(new ProjectId(projectId), title); string possibleDeadline = deadline.HasValue ? deadline.Value.ToShortDateString() : null; var newTask = new TaskInGridView(taskId, projectId, title, possibleDeadline, priority, false); AddTaskToGridView(newTask); }
private void InsertTaskRightAboveTasksThatAreDone(TaskInGridView task) { var firstDoneTask = _allTasksInProject.FirstOrDefault(x => x.Id != task.Id && x.IsDone); if (firstDoneTask == null) { _allTasksInProject.Add(task); } else { int indexOfFirstDoneTask = _allTasksInProject.IndexOf(firstDoneTask); _allTasksInProject.Insert(indexOfFirstDoneTask, task); } }
private void AddTaskToGridView(TaskInGridView newTask) { if (!_allTasks.Contains(newTask)) { _allTasks.Add(newTask); } InsertTaskRightAboveTasksThatAreDone(newTask); int priorityColumn = taskGrid.Columns["Priority"].Index; int indexOfNewRow = _allTasksInProject.IndexOf(newTask); var newRow = taskGrid.Rows[indexOfNewRow]; newRow.Cells[priorityColumn].Value = newTask.Priority; newRow.Selected = true; taskGrid.CurrentCell = newRow.Cells[0]; }
private void taskGrid_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { var selectedRow = taskGrid.CurrentRow; if (selectedRow == null) { return; } if (_gridUtils.TouchesColumn("Done", e.ColumnIndex, e.RowIndex)) { bool isTaskDone; if (Boolean.TryParse(selectedRow.Cells["Done"].Value.ToString(), out isTaskDone)) { var task = (TaskInGridView)(taskGrid.SelectedCells[0].OwningRow.DataBoundItem); TaskInGridView taskInGridView = _allTasks.First(x => x.Id == task.Id); if (isTaskDone) { var markTaskAsDone = new MarkTaskAsDone(task.Id); _commandDispatcher.Send(markTaskAsDone); // Fake in UI to increase user experience taskInGridView.IsDone = true; _allTasksInProject.Remove(taskInGridView); AddTaskToGridView(taskInGridView); int indexOfAddedTask = _allTasksInProject.IndexOf(taskInGridView); _gridUtils.FadeOut(indexOfAddedTask); } else { var reopenTask = new ReopenTask(task.Id); _commandDispatcher.Send(reopenTask); // Fake in UI to increase user experience taskInGridView.IsDone = false; _allTasksInProject.Remove(taskInGridView); AddTaskToGridView(taskInGridView); int indexOfAddedTask = _allTasksInProject.IndexOf(taskInGridView); _gridUtils.FadeIn(indexOfAddedTask); } } } }
public void Note_Is_Retrieved_Together_With_Task() { string projectId = Fixture.Create <string>(); string note = Fixture.Create <string>(); using (var session = DocumentStore.OpenSession()) { string id = Fixture.Create <string>(); var taskInGridView = new TaskInGridView(id, projectId, Fixture.Create <string>(), Fixture.Create <DateTime>().ToShortDateString(), TaskPriority.Lowest.DisplayName, true, note); session.Store(taskInGridView); session.SaveChanges(); } var taskGridViewQueryHandler = new TaskInGridViewQueryHandler(); var allTasksInProjectQuery = new AllTasksInProjectQuery(projectId); List <TaskInGridView> tasksInGridView = taskGridViewQueryHandler.Handle(allTasksInProjectQuery); Assert.That(tasksInGridView[0].Note, Is.EqualTo(note)); }
public void Task_With_Same_Title_Does_Already_Exist_In_Project() { var fixture = new Fixture(); var title = fixture.Create <Title>(); var projectId = fixture.Create <ProjectId>(); using (var session = DocumentStore.OpenSession()) { string id = fixture.Create <string>(); var taskInGridView = new TaskInGridView(id, projectId, title, fixture.Create <DateTime>().ToShortDateString(), ProjectPriority.Low.DisplayName, true); session.Store(taskInGridView); session.SaveChanges(); } var doesTaskWithTitleAlreadyExistUnderSameProjectQuery = new DoesTaskWithTitleAlreadyExistUnderSameProjectQuery(title, projectId); var taskQueryHandler = new TaskQueryService(); bool doesTaskExist = taskQueryHandler.Handle(doesTaskWithTitleAlreadyExistUnderSameProjectQuery); Assert.That(doesTaskExist, Is.True); }
public void When_Task_Is_Done_The_Grid_Read_Model_Is_Updated() { var taskId = Fixture.Create <string>(); var projectId = Fixture.Create <string>(); using (var session = DocumentStore.OpenSession()) { var taskInGridView = new TaskInGridView(taskId, projectId, Fixture.Create <string>(), Fixture.Create <TaskDeadline>(), TaskPriority.Low.DisplayName, false); session.Store(taskInGridView); session.SaveChanges(); } var eventHandler = new TaskDoneEventHandler(DocumentStore); var taskDone = new TaskDone(taskId, projectId); eventHandler.Handle(taskDone); var allTasksInProjectQuery = new AllTasksInProjectQuery(projectId); var taskInGridViewQueryHandler = new TaskInGridViewQueryHandler(); var task = taskInGridViewQueryHandler.Handle(allTasksInProjectQuery)[0]; Assert.That(task.IsDone, Is.True); }
public void Can_Insert_Into_RavenDb() { var fixture = new Fixture(); var title = fixture.Create <string>(); IDocumentStore documentStore = new RavenDbStore().Instance; string id = fixture.Create <string>(); using (var session = documentStore.OpenSession()) { string projectId = fixture.Create <string>(); var taskInGridView = new TaskInGridView(id, projectId, title, fixture.Create <DateTime>().ToShortDateString(), ProjectPriority.Low.DisplayName, true); session.Store(taskInGridView); session.SaveChanges(); } using (var session = documentStore.OpenSession()) { var taskInGridView = session.Load <TaskInGridView>(id); // WaitForUserToContinueTheTest(documentStore, true, 8079); Assert.That(taskInGridView, Is.Not.Null); } documentStore.Dispose(); }