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);
        }
Пример #3
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();
        }