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

            Action act = () => controller.Post(receitaViewModel);

            act.Should().Throw <Exception>()
            .WithMessage("Erro");
        }
        public void Post_DeveRetornarUmaExeception()
        {
            //Arrange
            var context    = CreateTestContext();
            var controller = new ReceitasController(context);

            // Act
            Action act = () => controller.Post(new ReceitaViewModel()
            {
                Id          = 4,
                Title       = "Brigadeiro com nome grande",
                Description = "Um belo briagdeiro com nome grande",
                Ingredients = "Chocolate, Leite Condensado, Nome grande",
                Preparation = "Misture o e leve a um fogo GRANDE.",
                ImageUrl    = "fake.com/brigadeiro_grande"
            });

            act.Should().Throw <Exception>().WithMessage("Passa o titulo direito");
        }
        public void Post_DeveInserirUmaReceita()
        {
            //Arrange
            var brigadeiro = new Receita()
            {
                Id           = 4,
                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();
            var controller = new ReceitasController(context);

            // Act
            controller.Post(new ReceitaViewModel()
            {
                Id          = brigadeiro.Id,
                Title       = brigadeiro.Titulo,
                Description = brigadeiro.Descricao,
                Ingredients = brigadeiro.Ingredientes,
                Preparation = brigadeiro.Preparacao,
                ImageUrl    = brigadeiro.UrlDaImagem
            });

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

            //Assert
            receita.Value.Should().BeEquivalentTo(new ReceitaViewModel()
            {
                Id          = brigadeiro.Id,
                Title       = brigadeiro.Titulo,
                Description = brigadeiro.Descricao,
                Ingredients = brigadeiro.Ingredientes,
                Preparation = brigadeiro.Preparacao,
                ImageUrl    = brigadeiro.UrlDaImagem
            });
            receitaDoBanco.Should().NotBeNull();
        }
        public void Insert_DeveInserirReceitaSolicitada()
        {
            var receitaViewModel = new ReceitasViewModel()
            {
                Title       = "Testaaaaabhnnfyhthyte",
                Description = "Isso é um teste",
                Preparation = "Coxinha",
                Ingredients = "Teste1",
                ImageUrl    = "urlimagem"
            };
            var context    = CreateTestContext();
            var controller = new ReceitasController(context);

            var result      = controller.Post(receitaViewModel);
            var receitaPost = result.Value;

            receitaPost
            .Should()
            .BeEquivalentTo(receitaViewModel, c => c.Excluding(r => r.Id));

            var receitaDoBanco = context.Receitas.FirstOrDefault(receita => receita.Id == receitaPost.Id);

            receitaDoBanco.Should().NotBeNull("Porque ela deve ser existente no banco de dados.");
        }