示例#1
0
        public async Task GivenSize_To_Create_Board_Must_Create_New_Board()
        {
            using (var server = new ServerFixture(databasePort: _databaseFixture.Port))
            {
                var createBoardRequest = new CreateBoardRequest
                {
                    RowSize    = 10,
                    ColumnSize = 10
                };
                var response = await server.Client.PostAsJsonAsync("boards", createBoardRequest);

                response.StatusCode.Should().Be(HttpStatusCode.Created);

                var boardTask         = response.Content.ReadAsAsync <Board>();
                var currentBoardsTask = server.Assert().GetBoards();

                await Task.WhenAll(boardTask, currentBoardsTask);

                var board         = await boardTask;
                var currentBoards = await currentBoardsTask;
                var currentBoard  = currentBoards.First();

                board.Should().BeEquivalentTo(currentBoard);
            }
        }
示例#2
0
        public async Task <IActionResult> CreateBoard(CreateBoardRequest createBoardRequest)
        {
            var board = await _boardService.CreateBoard(createBoardRequest);

            var boardUri = new Uri($"/boards/{board.Id}", UriKind.Relative);

            return(Created(boardUri, board));
        }
示例#3
0
        public async Task BoardTooSmall()
        {
            var request = new CreateBoardRequest()
            {
                Width  = 5,
                Height = 6
            };
            var response = await _client.PostAsync($"/api/boards", Helpers.GetHttpRequestContent(request));

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
        }
 public ActionResult <BoardViewModel> Create([FromBody] CreateBoardRequest model)
 {
     try
     {
         var board = _battleshipProvider.CreateBoard(model.ToBoard());
         return(Ok(new BoardViewModel(board)));
     }
     catch (Exception ex)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError, new { error = ex.Message }));
     }
 }
示例#5
0
        public Task <IActionResult> Create([FromBody] CreateBoardRequest createBoardRequest)
        {
            var userId = new Guid(User.FindFirstValue("id"));
            var board  = new Board
            {
                UserId = userId,
                Title  = createBoardRequest.Title,
                Scope  = "public",
                Status = "publish"
            };

            return(_serviceInvoker.AsyncOkCreated(() => _boardService.Create(board)));
        }
示例#6
0
        public async Task <Board> CreateBoard(CreateBoardRequest createBoardRequest)
        {
            var          boardId = Guid.NewGuid();
            const string sql     = @"INSERT INTO Board(Id, RowSize, ColumnSize) VALUES(@id, @rowSize, @columnSize)";

            await _database.ExecuteAsync(sql, new { Id = boardId, createBoardRequest.RowSize, createBoardRequest.ColumnSize });

            return(new Board
            {
                Id = boardId,
                RowSize = createBoardRequest.RowSize,
                ColumnSize = createBoardRequest.ColumnSize
            });
        }
        public async Task Setup()
        {
            var clientFactory = new CustomWebApplicationFactory();

            _client = clientFactory.CreateDefaultClient();
            var request = new CreateBoardRequest()
            {
                Width  = 10,
                Height = 15
            };
            var response = await _client.PostAsync($"/api/boards", Helpers.GetHttpRequestContent(request));

            response.EnsureSuccessStatusCode();
            await Helpers.GetHttpResponseContent <BoardViewModel>(response);
        }
示例#8
0
        public async Task ShouldCreateABoard()
        {
            var request = new CreateBoardRequest()
            {
                Width  = 10,
                Height = 15
            };
            var response = await _client.PostAsync($"/api/boards", Helpers.GetHttpRequestContent(request));

            response.EnsureSuccessStatusCode();
            var board = await Helpers.GetHttpResponseContent <BoardViewModel>(response);

            board.Should().NotBeNull();
            board.Id.Should().Be(1);
            board.Width.Should().Be(10);
            board.Height.Should().Be(15);
        }