public async Task Index_sucesso()
        {
            //arrange
            IList <Produto> fakeProdutos = GetFakeProdutos();

            catalogoServiceMock
            .Setup(s => s.GetProdutos())
            .ReturnsAsync(fakeProdutos)
            .Verifiable();

            var catalogoController =
                new CatalogoController(catalogoServiceMock.Object, loggerMock.Object, userRedisRepositoryMock.Object);

            //act
            var resultado = await catalogoController.Index();

            //assert
            var viewResult = Assert.IsType <ViewResult>(resultado);
            var model      = Assert.IsAssignableFrom <IList <Produto> >(viewResult.ViewData.Model);

            Assert.Collection(model,
                              item => Assert.Equal(fakeProdutos[0].Codigo, item.Codigo),
                              item => Assert.Equal(fakeProdutos[1].Codigo, item.Codigo),
                              item => Assert.Equal(fakeProdutos[2].Codigo, item.Codigo)
                              );
            catalogoServiceMock.Verify();
        }
示例#2
0
        public async Task Adicionar_SucessTestAsync()
        {
            var produto = ProdutoMock.ProdutoModelFaker.Generate();

            _produtoServiceMock.Setup(x => x.AddAsync(produto))
            .Returns(Task.FromResult(ProdutoMock.ProdutoModelFaker.Generate()));

            var catalogoController = new CatalogoController(_produtoServiceMock.Object, _produtoRepositoryMock.Object, _notifier.Object);
            var catalogoService    = await catalogoController.Adicionar(produto);

            var actionResult = Assert.IsType <OkObjectResult>(catalogoService.Result);

            Assert.Equal(StatusCodes.Status200OK, actionResult.StatusCode);
        }
示例#3
0
        public async Task GetAll_SucessTestAsync()
        {
            _produtoRepositoryMock.Setup(x => x.GetAllAsync())
            .ReturnsAsync(ProdutoMock.ProdutoModelFaker.Generate(3));

            var catalogoController = new CatalogoController(_produtoServiceMock.Object, _produtoRepositoryMock.Object, _notifier.Object);
            var catalogoRepository = await catalogoController.GetAll();

            var actionResult = Assert.IsType <OkObjectResult>(catalogoRepository.Result);
            var actionValue  = Assert.IsAssignableFrom <IEnumerable <Produto> >(actionResult.Value);

            Assert.NotNull(actionResult);
            Assert.Equal(StatusCodes.Status200OK, actionResult.StatusCode);
        }
示例#4
0
        public async Task GetDetails_SucessTestAsync()
        {
            var produtoId = ProdutoMock.ProdutoModelFaker.Generate();

            _produtoRepositoryMock.Setup(x => x.GetByIdAsync(produtoId.Id))
            .ReturnsAsync(ProdutoMock.ProdutoModelFaker.Generate());

            var catalogoController = new CatalogoController(_produtoServiceMock.Object, _produtoRepositoryMock.Object, _notifier.Object);
            var catalogoRepository = await catalogoController.GetDetails(produtoId.Id);

            var actionResult = Assert.IsType <OkObjectResult>(catalogoRepository.Result);
            var actionValue  = Assert.IsType <Produto>(actionResult.Value);

            Assert.NotNull(actionResult);
            Assert.Equal(StatusCodes.Status200OK, actionResult.StatusCode);
        }
        public async Task Index_Exception()
        {
            //arrange
            catalogoServiceMock
            .Setup(s => s.GetProdutos())
            .ThrowsAsync(new Exception());

            //act
            var catalogoController =
                new CatalogoController(catalogoServiceMock.Object, loggerMock.Object, userRedisRepositoryMock.Object);

            var result = await catalogoController.Index();

            var model = result as IList <Produto>;

            //assert
            Assert.Null(model);
            Assert.True(!string.IsNullOrWhiteSpace(catalogoController.ViewBag.MsgServicoIndisponivel));
        }