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);
        }
Esempio n. 3
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);
        }
        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);
        }
Esempio n. 7
0
        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));
        }