public void Put_DeveRetornarUmaExeceptionTituloForaDoTamanho()
        {
            //criar receita para testar
            var brigadeiro = new Receita()
            {
                Id           = 7,
                Titulo       = "Brigadeiro",
                Descricao    = "Um belo briagdeiro",
                Ingredientes = "Chocolate, Leite Condensado",
                Preparacao   = "Misture o e leve ao fogo.",
                UrlDaImagem  = "https://img.itdg.com.br/tdg/images/recipes/000/000/114/75811/75811_original.jpg?mode=crop&width=710&height=400"
            };

            var context = CreateTestContext();

            context.AddRange(brigadeiro);
            context.SaveChanges();
            var controller = new ReceitasController(context);

            // Act
            Action act = () => controller.Put(brigadeiro.Id, new ReceitaViewModel()
            {
                Id          = brigadeiro.Id,
                Title       = "Titulo modificado gigante pra caramba GRANDE não sei cade a execption que deiva estar aqui!",
                Description = "Descrição modificada",
                Ingredients = brigadeiro.Ingredientes,
                Preparation = brigadeiro.Preparacao,
                ImageUrl    = brigadeiro.UrlDaImagem
            });

            act.Should().Throw <Exception>().WithMessage("Passa o titulo direito");
        }
        public void Put_DeveAtualizarInformacaoSolicitada()
        {
            var receitasCadastradas = cadastrarReceitas();

            var context = CreateTestContext();

            context.AddRange(receitasCadastradas);
            context.SaveChanges();

            var receitaViewModel = new ReceitasViewModel()
            {
                Title       = "Tgas",
                Description = "Isso é um teste",
            };
            var controller = new ReceitasController(context);
            var result     = controller.Put(2, receitaViewModel);

            var receitas = result.Value;

            receitas
            .Title
            .Should()
            .Be(receitaViewModel.Title);

            receitas
            .Description
            .Should()
            .Be(receitaViewModel.Description);
        }
        public void Put_DeveAtualizarReceita()
        {
            //criar receita para testar
            var brigadeiro = new Receita()
            {
                Id           = 6,
                Titulo       = "Brigadeiro",
                Descricao    = "Um belo briagdeiro",
                Ingredientes = "Chocolate, Leite Condensado",
                Preparacao   = "Misture o e leve ao fogo.",
                UrlDaImagem  = "https://img.itdg.com.br/tdg/images/recipes/000/000/114/75811/75811_original.jpg?mode=crop&width=710&height=400"
            };
            string tituloModificado    = "Titulo V2";
            string descricaoModificado = "Descrição V2";

            var context = CreateTestContext();

            context.AddRange(brigadeiro);
            context.SaveChanges();
            var controller = new ReceitasController(context);

            controller.Put(brigadeiro.Id, new ReceitaViewModel()
            {
                Id          = brigadeiro.Id,
                Title       = tituloModificado,
                Description = descricaoModificado,
                Ingredients = brigadeiro.Ingredientes,
                Preparation = brigadeiro.Preparacao,
                ImageUrl    = brigadeiro.UrlDaImagem
            });

            var receitaDoBanco = context.Receitas.FirstOrDefault(r => r.Id == brigadeiro.Id);

            //Assert
            receitaDoBanco.Should().BeEquivalentTo(new Receita()
            {
                Id           = brigadeiro.Id,
                Titulo       = tituloModificado,
                Descricao    = descricaoModificado,
                Ingredientes = brigadeiro.Ingredientes,
                Preparacao   = brigadeiro.Preparacao,
                UrlDaImagem  = brigadeiro.UrlDaImagem
            });

            context.Receitas.Remove(receitaDoBanco);
            context.SaveChanges();
        }
        public void Put_DeveAtualizarApenasTituloEDescricao()
        {
            //criar receita para testar
            string originalIngredientes = "Chocolate, Leite Condensado";
            string originalPreparacao   = "Misture o e leve ao fogo.";
            string originalUrlDaImagem  = "https://img.itdg.com.br/tdg/images/recipes/000/000/114/75811/75811_original.jpg?mode=crop&width=710&height=400";

            var brigadeiro = new Receita()
            {
                Id           = 8,
                Titulo       = "Brigadeiro",
                Descricao    = "Um belo briagdeiro",
                Ingredientes = originalIngredientes,
                Preparacao   = originalPreparacao,
                UrlDaImagem  = originalUrlDaImagem
            };

            var context = CreateTestContext();

            context.AddRange(brigadeiro);
            context.SaveChanges();
            var controller = new ReceitasController(context);

            // Act
            Action act = () => controller.Put(brigadeiro.Id, new ReceitaViewModel()
            {
                Id          = brigadeiro.Id,
                Title       = "Titulo modificado",
                Description = "Descrição modificada",
                Ingredients = "Ingredientes modificada",
                Preparation = "Preparação modificada",
                ImageUrl    = "Url da imagem modificada"
            });

            act.Should().Throw <Exception>().WithMessage("Só podem ser modificados o titulo e a descrição");
        }
        public void Put_DeveLancarUmaExeption()
        {
            var receitasCadastradas = cadastrarReceitas();

            var context = CreateTestContext();

            context.AddRange(receitasCadastradas);
            context.SaveChanges();

            var receitaViewModel = new ReceitasViewModel()
            {
                Title       = "Tesfzjsgfhzjsgffdszkjas",
                Description = "Isso é um teste",
                Preparation = "Coxinha",
                Ingredients = "Teste1",
                ImageUrl    = "urlimagem"
            };
            var controller = new ReceitasController(context);

            Action act = () => controller.Put(2, receitaViewModel);

            act.Should().Throw <Exception>()
            .WithMessage("Erro");
        }