document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1.         [TestMethod]
  2.         public void TesteRepositorioDerivado()
  3.         {
  4.             using (var uow = new UnitOfWork(new MyEntities()))
  5.             {
  6.                 //instanciando o repositório de endereços
  7.                 IRepositorio<Endereco> repEnderecos = new Repositorio<Endereco>(uow);
  8.  
  9.                 //instanciando o repositório derivado de pessoas
  10.                 IRepositorio<Pessoa> repPessoas = new RepositorioPessoas(uow);
  11.  
  12.                 //cria uma nova pessoa com a data atual já preenchida
  13.                 var pessoa = repPessoas.CreateNew();
  14.                 pessoa.Nome = "Fulano";
  15.  
  16.                 //cria uma nova entidade Endereco e associa com a pessoa
  17.                 var end = repEnderecos.CreateNew();
  18.                 end.Rua = "Teste";
  19.                 end.Pessoas.Add(pessoa);
  20.  
  21.                 //persiste todos os repositórios
  22.                 uow.Commit();
  23.  
  24.                 //Faz a asserção checando se a pessoa possui endereços relacionados
  25.                 Assert.IsTrue(pessoa.Enderecos.Count > 0);
  26.             }
  27.         }
  28.  
  29.         [TestMethod]
  30.         public void TesteOperacoesCrud()
  31.         {
  32.             using (var uow = new UnitOfWork(new MyEntities()))
  33.             {
  34.                 var repPessoas = new RepositorioPessoas(uow);
  35.                 //exclui uma pessoa com id = 1
  36.                 var pessoa = repPessoas.GetEntityByKey(1);
  37.                 if (pessoa != null)
  38.                     repPessoas.RemoveEntity(pessoa);
  39.                 uow.Commit();
  40.  
  41.                 //exclui todos os enderecos de uma pessoa com id = 2
  42.                 var repEnderecos = new Repositorio<Endereco>(uow);
  43.                 var pessoa2 = repPessoas.GetEntityByKey(2);
  44.                 if (pessoa2 != null)
  45.                 {
  46.                     var enderecosPessoa2 = repEnderecos.GetAll(end => end.Pessoas.Any(p => p == pessoa2));
  47.                     foreach (var endereco in enderecosPessoa2)
  48.                     {
  49.                         repEnderecos.RemoveEntity(endereco);
  50.                     }
  51.                     uow.Commit();
  52.                 }
  53.             }
  54.         }
');