public async Task CreateBoardCommandHandler_ValidRequest_Successful() { //mocking var mediator = new Mock <IMediator>(); var automapper = new Mock <IMapper>(); var gameRepository = new Mock <IGameRepository>(); var game = new Game() { Id = new Guid(), Players = new List <Player>() }; var cancellationToken = new CancellationToken(); gameRepository.Setup(r => r.Add(game)).Returns(Task.FromResult(game)); automapper.Setup(a => a.Map <GameDto>(It.IsAny <Game>())).Returns(new GameDto() { Id = game.Id, Players = new List <PlayerDto>() }); gameRepository.Setup(r => r.UnitOfWork.SaveChangesAsync(cancellationToken)).Returns(Task.FromResult(1)); //call var acceptJobCommand = new CreateBoardCommand() { }; var acceptJobCommandHandler = new CreateBoardCommandHandler(gameRepository.Object, automapper.Object); var gameDto = await acceptJobCommandHandler.Handle(acceptJobCommand, cancellationToken); //assertions gameRepository.Verify(mock => mock.UnitOfWork.SaveChangesAsync(cancellationToken), Times.Once()); Assert.AreEqual(game.Id, gameDto.Id); Assert.AreEqual(game.Players.Count, 0); }
private void SetupCommandHandler(IList<BoardEntity> data) { var fakeDbSet = new FakeDbSet<BoardEntity>(); data.ToList().ForEach(x => fakeDbSet.Add(x)); mockDataContext = new Mock<IDataContext>(); mockDataContext.Setup(x => x.Set<BoardEntity>()).Returns(fakeDbSet); mockSlugService = new Mock<ISlugService>(); mockMappingService = new Mock<IMappingService>(); handler = new CreateBoardCommandHandler(mockDataContext.Object, mockMappingService.Object, mockSlugService.Object); }
private void SetupCommandHandler(IList <BoardEntity> data) { var fakeDbSet = new FakeDbSet <BoardEntity>(); data.ToList().ForEach(x => fakeDbSet.Add(x)); mockDataContext = new Mock <IDataContext>(); mockDataContext.Setup(x => x.Set <BoardEntity>()).Returns(fakeDbSet); mockSlugService = new Mock <ISlugService>(); mockMappingService = new Mock <IMappingService>(); handler = new CreateBoardCommandHandler(mockDataContext.Object, mockMappingService.Object, mockSlugService.Object); }
public async Task Handle_ValidParameters_ShouldCreateNewBoard() { // Arrange var command = new CreateBoard { Id = Model.Id, Name = Model.Name, }; var repositoryMock = new Mock <IRepository <Board> >(); var handler = new CreateBoardCommandHandler(repositoryMock.Object, _utcNowFactoryMock.Object); // Act await handler.Handle(command, cancellationToken : default); // Assert repositoryMock.Verify(x => x.Add(Model.Id, It.IsAny <Board>()), Times.Once); }
public void Handle_NullOrEmptyName_ShouldThrowValidationException(string name) { // Arrange var command = new CreateBoard { Id = Model.Id, Name = name, }; var handler = new CreateBoardCommandHandler(Mock.Of <IRepository <Board> >(), _utcNowFactoryMock.Object); // Act Func <Task> action = () => handler.Handle(command, cancellationToken: default); // Assert action.Should().Throw <ValidationException>() .WithMessage("*Name*"); }
public async Task Handle_CreatesBoard() { var dbName = $"{nameof(CreateBoardCommandHandlerTests)}_{nameof(Handle_CreatesBoard)}"; using var context = TestApplicationDbContext.Create(dbName); var handler = new CreateBoardCommandHandler(context, _currentUser.Object, new BoardFactory(), new BoardUserFactory()); var request = new CreateBoardCommand { Title = "test-title" }; var cancellationToken = new CancellationToken(); await handler.Handle(request, cancellationToken); var board = await context.Boards.FirstOrDefaultAsync(cancellationToken); Assert.NotNull(board); Assert.Equal(1, board.Id); }
public void Should_Create_Board_With_Participants() { // Given var boardName = "test board"; var participantsIds = users.Skip(1).Select(x => x.ID); var userId = users.First().ID; var handler = new CreateBoardCommandHandler(context); var command = new CreateBoardCommandHandler.Command { Name = boardName, ParticipantIds = participantsIds, UserId = userId }; // When handler.HandleAsync(command).Wait(); // Then var board = context.KanbanBoards.First(); Assert.AreEqual(boardName, board.Name); Assert.AreEqual(userId, board.OwnerID); CollectionAssert.AreEquivalent(participantsIds, board.UsersWithAccess.Select(x => x.UserWithAccessID)); }