public async void CadastrarProdutoDeveRetornarQueCategoriaNaoExiste() { var client = _fixture.GetClient(); var url = Path.Combine(BaseUrl, "cadastrar"); var request = new CadastrarProdutoRequestModel() { Categoria = 5, Valor = 100, Descricao = "Notebook Asus", Complemento = "Latitude 5340" }; var response = await client.PostAsync(url, new StringContent( JsonConvert.SerializeObject(request), Encoding.UTF8, MediaTypeNames.Application.Json)); var content = await response.Content.ReadAsStringAsync(); var resultado = JsonConvert.DeserializeObject <ResponseTestes>(content); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); Assert.False(resultado.Success); Assert.Equal("Categoria inválida", resultado.Errors.FirstOrDefault()); }
public async Task CadastrarProdutoDeveRetornoBadRequestCasoDescricaoSejaNull() { var request = new CadastrarProdutoRequestModel() { Categoria = 1, Valor = 100, Descricao = null }; var responseEsperado = new Response() .AddError("Descrição do produto é obrigatória"); _mediatorMock .Setup(x => x.Send(It.IsAny <CadastraProdutoCommand>(), It.IsAny <CancellationToken>())) .ReturnsAsync(responseEsperado) .Verifiable("Response não enviado"); var resultado = (await _produtoController.CadastrarProduto(request)) as ObjectResult; var dados = resultado.Value as Response; _mediatorMock .Verify(x => x.Send(It.IsAny <CadastraProdutoCommand>(), It.IsAny <CancellationToken>()), Times.Once()); Assert.Equal((int)HttpStatusCode.BadRequest, (int)resultado.StatusCode); Assert.False(dados.Success); Assert.Equal(responseEsperado.Errors.First(), dados.Errors.FirstOrDefault()); }
public async void CadastrarProduto() { var client = _fixture.GetClient(); var url = Path.Combine(BaseUrl, "cadastrar"); var request = new CadastrarProdutoRequestModel() { Categoria = 1, Valor = 100, Descricao = _nomeProdutoCadastro, Complemento = "Latitude 5340" }; var response = await client.PostAsync(url, new StringContent( JsonConvert.SerializeObject(request), Encoding.UTF8, MediaTypeNames.Application.Json)); var content = await response.Content.ReadAsStringAsync(); var resultado = JsonConvert.DeserializeObject <Response>(content); Assert.Equal(HttpStatusCode.Created, response.StatusCode); Assert.True(resultado.Success); }
public async Task CadastrarProdutoDeveRetornoCreatedCasoOProdutoSejaCadastrado() { var request = new CadastrarProdutoRequestModel() { Categoria = 1, Valor = 100, Descricao = "Notebook" }; var responseEsperado = new Response(); _mediatorMock .Setup(x => x.Send(It.IsAny <CadastraProdutoCommand>(), It.IsAny <CancellationToken>())) .ReturnsAsync(responseEsperado); var resultado = (await _produtoController.CadastrarProduto(request)) as ObjectResult; var dados = resultado.Value as Response; _mediatorMock .Verify(x => x.Send(It.IsAny <CadastraProdutoCommand>(), It.IsAny <CancellationToken>()), Times.Once()); Assert.Equal((int)HttpStatusCode.Created, (int)resultado.StatusCode); Assert.True(dados.Success); Assert.Equal(0, (int)dados.Errors.Count()); }
public async Task <IActionResult> CadastrarProduto([FromBody] CadastrarProdutoRequestModel request) { if (request == null) { return(ErrorResponse(HttpStatusCode.BadRequest, "Solicitação inválida")); } var response = await _mediator.Send(_mapper.Map <CadastraProdutoCommand>(request)); if (!response.Success) { return(ErrorResponse(HttpStatusCode.BadRequest, response.Errors)); } return(SuccessResponse(HttpStatusCode.Created, response)); }