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); }
public async void GivenABoardWhenOkThenSaveChangedCalled() { // Arrange SetupCommandHandler(new List <BoardEntity>()); var command = new CreateBoardCommand { Board = new Board() }; mockMappingService.Setup(x => x.Map <BoardEntity>(It.IsAny <Board>())).Returns(new BoardEntity()); // Act await handler.Handle(command, CancellationToken.None); // Assert mockDataContext.Verify(x => x.SaveChangesAsync(), Times.Once); }
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); }