Exemplo n.º 1
0
        public async Task Handle_AccessCodeFound_CreateBoardUser()
        {
            var dbName = $"{nameof(JoinBoardCommandHandlerTests)}_{nameof(Handle_AccessCodeFound_CreateBoardUser)}";

            using var context = TestApplicationDbContext.Create(dbName);
            var cancellationToken = new CancellationToken();
            var boardFactory      = new BoardFactory();
            var board             = boardFactory.Create("board-title");

            context.Boards.Add(board);
            await context.SaveChangesAsync(cancellationToken);

            var userId = "user-id";

            _currentUser.Setup(u => u.UserId).Returns(userId);

            var handler = new JoinBoardCommandHandler(context, _currentUser.Object, new BoardUserFactory());
            var command = new JoinBoardCommand {
                AccessCode = board.AccessCode
            };
            var dto = await handler.Handle(command, cancellationToken);

            var boardUser = await context.BoardUsers
                            .FirstOrDefaultAsync(bu => bu.BoardId == board.Id && bu.UserId == userId);

            Assert.NotNull(boardUser);
            Assert.Equal(board.Id, dto.BoardId);
        }
Exemplo n.º 2
0
        public async Task Handle_AccessCodeNotFound_ThrowNotFoundApplicationException()
        {
            var dbName = $"{nameof(JoinBoardCommandHandlerTests)}_{nameof(Handle_AccessCodeNotFound_ThrowNotFoundApplicationException)}";

            using var context = TestApplicationDbContext.Create(dbName);
            var handler = new JoinBoardCommandHandler(context, _currentUser.Object, new BoardUserFactory());
            var command = new JoinBoardCommand {
                AccessCode = "accessCode"
            };
            var cancellationToken = new CancellationToken();

            Task <BoardJoinedDto> action() => handler.Handle(command, cancellationToken);

            await Assert.ThrowsAsync <NotFoundApplicationException>(action);
        }