示例#1
0
        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());
        }
示例#2
0
        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());
        }
示例#3
0
        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);
        }
示例#4
0
        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());
        }
示例#5
0
        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));
        }