public PessoasAplicacao(IRepositorioPessoas <Pessoas> repo)
 {
     repositorio = repo;
 }
        public PessoaTest()
        {
            List<Pessoa> pessoas = new List<Pessoa>
            {
                new Pessoa {ID = 1, Nome = "Pedro de Lara", Endereco = "Rua Sem Nome, Nr 1", DataNascimento = new DateTime(1990, 01, 01)},
                new Pessoa {ID = 2, Nome = "Carlos Lara da Silva", Endereco = "Rua Sem Nome, Nr 2", DataNascimento = new DateTime(1980, 12, 23)},
                new Pessoa {ID = 3, Nome = "João Cunha", Endereco = "Rua Sem Nome, Nr 3", DataNascimento = new DateTime(1989, 02, 02)}
            };

            // Criação do Mock utilizando Moq
            Mock<IRepositorioPessoas> mockProductRepository = new Mock<IRepositorioPessoas>();

            // Nas linhas abaixo os métodos estão sendo configurados no mock

            // Retorna todas as pessoas
            mockProductRepository.Setup(mr => mr.ObterTodos()).Returns(pessoas);

            // Retorna a pessoa pelo ID
            mockProductRepository.Setup(mr => mr.ObterPorID(
                It.IsAny<int>())).Returns((int i) => pessoas.Where(
                p => p.ID == i).Single());

            // Retorna as pessoas pelo filtro do nome
            mockProductRepository.Setup(mr => mr.ObterPorFiltro(
                It.IsAny<string>())).Returns((string i) => pessoas.Where(
                p => p.Nome.Contains(i)).ToList());

            // Exclui a pessoa com ID passado por parâmetro
            mockProductRepository.Setup(mr => mr.Excluir(It.IsAny<int>())).Returns(
                (int id) =>
                {
                    Pessoa pessoa = pessoas.Where(p => p.ID == id).Single();
                    pessoas.Remove(pessoa);

                    return true;
                });

            // Salva (insere ou altera) uma pessoa
            mockProductRepository.Setup(mr => mr.Salvar(It.IsAny<Pessoa>())).Returns(
                (Pessoa pessoa) =>
                {
                    DateTime now = DateTime.Now;

                    if (pessoa.ID.Equals(default(int)))
                    {
                        // Insere a pessoa nova
                        pessoa.ID  = pessoas.Count() + 1;
                        pessoas.Add(pessoa);

                        return pessoa;
                    }
                    else
                    {
                        // Atualiza a pessoa existente
                        var original = pessoas.Where(
                            q => q.ID == pessoa.ID).Single();

                        if (original == null)
                        {
                            return null;
                        }

                        original.Nome = pessoa.Nome;
                        original.Endereco = pessoa.Endereco;
                        original.DataNascimento = pessoa.DataNascimento;

                        return original;
                    }
                });

            // Finaliza a configuração do mock
            this.MockRepositorioPessoa = mockProductRepository.Object;
        }
Exemple #3
0
 public ServicoPessoas(IRepositorioPessoas repositorioPessoas)
     : base(repositorioPessoas)
 {
     _repositorioPessoas = repositorioPessoas;
 }