public async Task UpdateItem_carrinho_invalid_model() { //arrange var clienteId = "123"; ItemCarrinho input = new ItemCarrinho("004", "004", "produto 004", 45.67m, 4); var controller = new CarrinhoController( _carrinhoRepositoryMock.Object, _identityServiceMock.Object, _serviceBusMock.Object); controller.ModelState.AddModelError("ProdutoId", "Required"); //act ActionResult <UpdateQuantidadeOutput> actionResult = await controller.UpdateItem(clienteId, new UpdateQuantidadeInput(input.ProdutoId, input.Quantidade)); //assert Assert.IsType <BadRequestObjectResult>(actionResult.Result); }
public async Task UpdateItem_carrinho_notfound() { //arrange var clienteId = "123"; ItemCarrinho input = new ItemCarrinho("004", "004", "produto 004", 45.67m, 4); _carrinhoRepositoryMock .Setup(c => c.UpdateCarrinhoAsync(clienteId, It.IsAny <UpdateQuantidadeInput>())) .ThrowsAsync(new KeyNotFoundException()); var controller = new CarrinhoController( _carrinhoRepositoryMock.Object, _identityServiceMock.Object, _serviceBusMock.Object); //act ActionResult <UpdateQuantidadeOutput> actionResult = await controller.UpdateItem(clienteId, new UpdateQuantidadeInput(input.ProdutoId, input.Quantidade)); //assert NotFoundObjectResult notFoundObjectResult = Assert.IsType <NotFoundObjectResult>(actionResult.Result); Assert.Equal(clienteId, notFoundObjectResult.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(); }