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; }
public ServicoPessoas(IRepositorioPessoas repositorioPessoas) : base(repositorioPessoas) { _repositorioPessoas = repositorioPessoas; }