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);
        }
Exemplo n.º 2
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);
        }