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