public async Task <IActionResult> UpdateQuantidade([FromBody] UpdateQuantidadeInput input)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            UpdateQuantidadeOutput value = await carrinhoService.UpdateItem(GetUserId(), input);

            if (value == null)
            {
                return(NotFound(input));
            }

            return(base.Ok(value));
        }
Example #2
0
        public async Task UpdateItem_success()
        {
            //arrange
            var          clienteId = "123";
            var          carrinho  = GetCarrinhoClienteFake(clienteId);
            ItemCarrinho input     = new ItemCarrinho("004", "004", "produto 004", 45.67m, 4);
            var          itens     = carrinho.Itens;

            itens.Add(input);
            _carrinhoRepositoryMock
            .Setup(c => c.UpdateCarrinhoAsync(clienteId, It.IsAny <UpdateQuantidadeInput>()))
            .ReturnsAsync(new UpdateQuantidadeOutput(input,
                                                     new CarrinhoCliente
            {
                ClienteId = clienteId,
                Itens     = itens
            }))
            .Verifiable();

            var controller = new CarrinhoController(
                _carrinhoRepositoryMock.Object,
                _identityServiceMock.Object,
                _serviceBusMock.Object,
                _loggerMock.Object,
                _configurationMock.Object);

            //act
            ActionResult <UpdateQuantidadeOutput> actionResult = await controller.UpdateItem(clienteId, new UpdateQuantidadeInput(input.ProdutoId, input.Quantidade));

            //assert
            OkObjectResult         okObjectResult         = Assert.IsType <OkObjectResult>(actionResult.Result);
            UpdateQuantidadeOutput updateQuantidadeOutput = Assert.IsAssignableFrom <UpdateQuantidadeOutput>(okObjectResult.Value);

            Assert.Equal(input.ProdutoId, updateQuantidadeOutput.ItemPedido.ProdutoId);
            _carrinhoRepositoryMock.Verify();
            _identityServiceMock.Verify();
            _serviceBusMock.Verify();
        }