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 })); }
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)); }
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); }
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)); } }
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); }