public void RetrieveAllPessoasRepositoryTest()
        {
            IPessoaRepository repository = new PessoaRepository();

            //Action
            var pessoas = repository.GetAll();

            //Assert
            Assert.IsNotNull(pessoas);
            Assert.IsTrue(pessoas.Count >= 5);
        }
        public void RetrievePessoaRepositoryTest()
        {
            //Arrange
            IPessoaRepository repository = new PessoaRepository();

            //Action
            Pessoa pessoa = repository.Get(1);

            //Assert
            Assert.IsNotNull(pessoa);
            Assert.IsTrue(pessoa.Id > 0);
            Assert.IsFalse(string.IsNullOrEmpty(pessoa.Nome));
             Assert.IsFalse(string.IsNullOrEmpty(pessoa.Profissao));
        }
        public void DeletePessoaRepositoryTest()
        {
            //Arrange
            IPessoaRepository repository = new PessoaRepository();

            //Action
            var deletedPessoa = repository.Delete(1);

            //Assert
            var contextForTest = new PessoaContext();
            var persistedPessoa = contextForTest.Pessoas.Find(1);
            Assert.IsNull(persistedPessoa);

            //Assert - utilizando o Framework FluentAssertions
            //Apenas um exemplo didático (NÃO CAI NA PROVA)
            //  persistedFuncionario.Should().BeNull();
        }
        public void UpdatePessoaRepositoryTest()
        {
            //Arrange
            IPessoaRepository repository = new PessoaRepository();
            Pessoa pessoa = _contextForTest.Pessoas.Find(2);
            pessoa.Nome = "Teste";
            pessoa.DataNascimento = new DateTime(1995, 06, 01, 0, 0, 0);
            pessoa.Cpf = "902901920192";
            pessoa.Profissao = "Programador";

            //Action
            var updatedPessoa = repository.Update(pessoa);

            //Assert
            //   IFuncionarioRepository repository2 = new FuncionarioRepository();
            var persistedPessoa = _contextForTest.Pessoas.Find(2);
            Assert.IsNotNull(updatedPessoa);
            Assert.AreEqual(updatedPessoa.Id, persistedPessoa.Id);
            Assert.AreEqual(updatedPessoa.Nome, persistedPessoa.Nome);
            Assert.AreEqual(updatedPessoa.DataNascimento, persistedPessoa.DataNascimento);
            Assert.AreEqual(updatedPessoa.Cpf, persistedPessoa.Cpf);
            Assert.AreEqual(updatedPessoa.Profissao, persistedPessoa.Profissao);

            //Assert - utilizando o Framework FluentAssertions
            //Apenas um exemplo didático (NÃO CAI NA PROVA)
            // updatedBlog.Should().NotBeNull();
            //updatedBlog.ShouldBeEquivalentTo(persistedBlog);
        }