コード例 #1
0
        public async Task CreateStateAsync_Should_Return_CreatedAtRouteResult_With_StateResponse()
        {
            var createStateRequest = new CreateStateRequest {
                Name = "Name", PolishName = "PolishName"
            };
            var createStateCommand = new CreateStateCommand(Guid.NewGuid(), createStateRequest.Name, createStateRequest.PolishName);
            var stateOutputQuery   = new StateOutputQuery(createStateCommand.StateId, Array.Empty <byte>(), createStateCommand.Name,
                                                          createStateCommand.PolishName);
            var stateResponse = new StateResponse(stateOutputQuery.Id, stateOutputQuery.RowVersion, stateOutputQuery.Name, stateOutputQuery.PolishName);

            _mapperMock.Setup(x => x.Map <CreateStateRequest, CreateStateCommand>(It.IsAny <CreateStateRequest>())).Returns(createStateCommand);
            _communicationBusMock.Setup(x => x.SendCommandAsync(It.IsAny <CreateStateCommand>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);
            _getStateQueryHandlerMock
            .Setup(x => x.HandleAsync(It.IsAny <GetStateInputQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(stateOutputQuery);
            _mapperMock.Setup(x => x.Map <StateOutputQuery, StateResponse>(It.IsAny <StateOutputQuery>())).Returns(stateResponse);

            var result = await _controller.CreateStateAsync(createStateRequest);

            var createdAtRouteResult = result.As <CreatedAtRouteResult>();

            createdAtRouteResult.Value.Should().BeEquivalentTo(stateResponse);
            createdAtRouteResult.RouteName.Should().BeEquivalentTo("GetState");
            createdAtRouteResult.RouteValues.Should().BeEquivalentTo(new RouteValueDictionary(new { id = stateResponse.Id }));
        }
コード例 #2
0
        public async Task <IActionResult> CreateStateAsync([FromBody] CreateStateRequest request)
        {
            var createStateCommand = _mapper.Map <CreateStateRequest, CreateStateCommand>(request);
            await _communicationBus.SendCommandAsync(createStateCommand);

            var getStateOutputQuery = await _getStateQueryHandler.HandleAsync(new GetStateInputQuery(createStateCommand.StateId));

            var stateResponse = _mapper.Map <StateOutputQuery, StateResponse>(getStateOutputQuery);

            return(CreatedAtRoute("GetState", new { id = stateResponse.Id }, stateResponse));
        }
コード例 #3
0
        public async Task Should_Return_Unauthorized_Status_Code_When_Requesting_By_Anonymous_Client()
        {
            var createStateRequest = new CreateStateRequest {
                Name = "CreateStateIntegrationTest", PolishName = "CreateStateIntegrationTest"
            };
            var createStateRequestString = JsonConvert.SerializeObject(createStateRequest);
            var requestContent           = new StringContent(createStateRequestString, Encoding.UTF8, "application/json");

            _fixture.AnonymousHttpClient.DefaultRequestHeaders.Add("api-version", "1");

            var response = await _fixture.AnonymousHttpClient.PostAsync("api/states", requestContent);

            response.StatusCode.Should().BeEquivalentTo(HttpStatusCode.Unauthorized);
        }
コード例 #4
0
        public async Task <IActionResult> CreateState([FromBody] CreateStateRequest request)
        {
            try
            {
                var stateModel = new StateModel();
                stateModel.Name = request.StateName;
                var id = await _stateService.Create(stateModel);

                return(Ok(id));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
コード例 #5
0
        public async Task Should_Create_State_When_Requesting_By_Administrator_Client()
        {
            var createStateRequest = new CreateStateRequest {
                Name = "CreateStateIntegrationTest", PolishName = "CreateStateIntegrationTest"
            };
            var createStateRequestString = JsonConvert.SerializeObject(createStateRequest);
            var requestContent           = new StringContent(createStateRequestString, Encoding.UTF8, "application/json");

            _fixture.AdministratorHttpClient.DefaultRequestHeaders.Add("api-version", "1");

            var response = await _fixture.AdministratorHttpClient.PostAsync("api/states", requestContent);

            response.StatusCode.Should().BeEquivalentTo(HttpStatusCode.Created);
            var responseContentString = await response.Content.ReadAsStringAsync();

            var expectedResponse = await PrepareExpectedResponseAsync(_fixture.AdministratorDbContext, createStateRequest.Name);

            responseContentString.Should().BeEquivalentTo(expectedResponse);
        }