public void Should_Throw_Exception_On_Adding_Column_With_Old_Timestamp() { // Given var board = context.KanbanBoards.FirstOrDefault(); var user = context.AppUsers.FirstOrDefault(); var handler = new AddColumn(repository, CreateAccessServiceMock(false, false).Object); // When/Then Assert.CatchAsync <ForbiddenException>( async() => await handler.HandleAsync( new AddColumn.Command(user.ID, board.ID, "New column"))); }
public void Should_Throw_Exception_On_Adding_Column_With_Name_Duplicate() { // Given var board = context.KanbanBoards.Include(x => x.Columns).FirstOrDefault(); var user = context.AppUsers.FirstOrDefault(); var handler = new AddColumn(repository, CreateAccessServiceMock().Object); var existingColumn = board.Columns.First(); // When/Then Assert.CatchAsync <ArgumentException>( async() => await handler.HandleAsync( new AddColumn.Command(user.ID, board.ID, existingColumn.Name))); }
public void Should_Add_Column_To_Board() { // Given var board = context.KanbanBoards.Include(x => x.Columns).FirstOrDefault(); var user = context.AppUsers.FirstOrDefault(); var handler = new AddColumn(repository, CreateAccessServiceMock().Object); var columnsPreAdd = board.Columns.ToList(); // When handler.HandleAsync(new AddColumn.Command(user.ID, board.ID, "New column")).Wait(); // Then var indexes = board.Columns.OrderBy(x => x.Index).Select(x => x.Index); var addedColumn = board.Columns.First(x => x.Name == "New column"); CollectionAssert.AreEqual(new[] { 0, 1, 2, 3 }, indexes); Assert.IsNotNull(addedColumn); Assert.AreEqual(columnsPreAdd.Count, addedColumn.Index); Assert.IsTrue(board.Columns.Count == columnsPreAdd.Count + 1); }