public void Should_Throw_Exception_On_Removing_Column_With_Existing_Items() { // Given var board = context.KanbanBoards.Include(x => x.Columns).First(); var user = context.AppUsers.FirstOrDefault(); var handler = new RemoveColumn(repository, CreateAccessServiceMock().Object); var column = board.Columns.Where(x => x.Items.Any()).First(); // When/Then Assert.CatchAsync <ArgumentException>( async() => await handler.HandleAsync( new RemoveColumn.Command(user.ID, board.ID, column.ID))); }
public void Should_Throw_Exception_On_Removing_Column_From_Wrong_Board() { // Given RemoveAllItems(); var firstBoard = context.KanbanBoards.Include(x => x.Columns).First(); var lastBoard = context.KanbanBoards.Include(x => x.Columns).Last(); var user = context.AppUsers.FirstOrDefault(); var handler = new RemoveColumn(repository, CreateAccessServiceMock().Object); var column = firstBoard.Columns.OrderBy(x => x.Index).First(x => x.Index == 1); var columnId = column.ID; // When/Then Assert.CatchAsync <ArgumentException>( async() => await handler.HandleAsync( new RemoveColumn.Command(user.ID, lastBoard.ID, column.ID))); }
public void Should_Remove_Column() { // Given RemoveAllItems(); var board = context.KanbanBoards.Include(x => x.Columns).First(); var user = context.AppUsers.FirstOrDefault(); var handler = new RemoveColumn(repository, CreateAccessServiceMock().Object); var column = board.Columns.OrderBy(x => x.Index).Last(); var columnCount = board.Columns.Count; // When handler.HandleAsync( new RemoveColumn.Command(user.ID, board.ID, column.ID)).Wait(); // Then Assert.IsFalse(board.Columns.Any(x => x.ID == column.ID)); Assert.AreEqual(columnCount - 1, board.Columns.Count); }
public void Should_Remap_Indexes_After_Column_Removal() { // Given RemoveAllItems(); var board = context.KanbanBoards.Include(x => x.Columns).First(); var user = context.AppUsers.FirstOrDefault(); var handler = new RemoveColumn(repository, CreateAccessServiceMock().Object); var column = board.Columns.OrderBy(x => x.Index).First(x => x.Index == 1); var columnId = column.ID; var columnCount = board.Columns.Count; // When handler.HandleAsync( new RemoveColumn.Command(user.ID, board.ID, column.ID)).Wait(); // Then var indexes = board.Columns.OrderBy(x => x.Index).Select(x => x.Index); Assert.IsFalse(board.Columns.Any(x => x.ID == columnId)); Assert.AreEqual(new[] { 0, 1 }, indexes); }