public void Devera_Retornar_OK_Quando_Add_Post()
        {
            //arranje
            //nova instancia de service
            var fakeService = _servicesFake.FakePromocaoService().Object;
            // recuperar dado DTO mocado
            var expected = _servicesFake.GetDadosFake <PromocaoDTO>().First();

            expected.Id = 0;

            // nova instancia da controller
            var controller = new PromocaoController(fakeService, _servicesFake.Mapper);

            //act
            //metodo em testes - metodo da requisição da controller
            var result = controller.Post(expected);

            //assert
            // comparar o tipo do status de retorno
            Assert.IsType <OkObjectResult>(result.Result);

            // casting valor do retorno para DTO
            var actual = (result.Result as OkObjectResult).Value as PromocaoDTO;

            //comparar valor retorno controller é nulo
            Assert.NotNull(actual);

            // comparar retorno com esperado inserido no retorno dos metodo fake
            Assert.Equal(999, actual.Id);
            Assert.Equal(expected.Descricao, actual.Descricao);
            Assert.Equal(expected.DataInicio, actual.DataInicio);
            Assert.Equal(expected.DataTermino, actual.DataTermino);
        }
        public void Devera_Retornar_Ok_Quando_GetAll()
        {
            //arranje
            //nova instancia de service
            var fakeService = _servicesFake.FakePromocaoService().Object;
            // recuperar dado mocado
            var expected = _servicesFake.Mapper.Map <List <PromocaoDTO> >(fakeService.ProdutosPromocoesLista());

            // nova instancia da controller
            var controller = new PromocaoController(fakeService, _servicesFake.Mapper);

            //act
            //metodo em testes - metodo da requisição da controller
            var result = controller.GetAll();

            //assert
            // comparar o tipo do status de retorno
            Assert.IsType <OkObjectResult>(result.Result);

            // casting valor do retorno para DTO
            var actual = (result.Result as OkObjectResult).Value as List <PromocaoDTO>;

            //comparar tipo do retorno
            Assert.IsType <List <PromocaoDTO> >(actual);

            //comparar valor retorno controller é nulo
            Assert.NotNull(actual);
            // comparar retorno com esperado
            Assert.Equal(expected.Count, actual.Count);
        }