public void DeveSerPossivelObterContatoComListaTelefone() { //Arrange var listTelefone = new List <ITelefone>(); var telefoneId = Guid.NewGuid(); var contatoId = Guid.NewGuid(); //Mock da interface testada ITelefone mTelefone = ITelefoneConstr.Um().ValorPadrao() .ComId(telefoneId) .ComContatoId(contatoId) .Construir(); Mock <IContato> mContato = IContratoConstr.Um() .ComId(contatoId).ComNome("Sérgio") .Obter(); mContato.SetupSet(c => c.Telefones = It.IsAny <List <ITelefone> >()) .Callback <List <ITelefone> >(t => listTelefone = t); //Moq da função da classe a ser testada _contatos.Setup(cs => cs.Obter(contatoId)).Returns(mContato.Object); _telefones.Setup(ts => ts.ObterTodosDoContato(contatoId)).Returns(new List <ITelefone> { mTelefone }); //Assert //Tester os métodos da classe mockada var contatoResultado = _repositorioContatos.ObterPorId(contatoId); mContato.SetupGet(c => c.Telefones).Returns(listTelefone); //Act //Validar o retorno dos métodos mockados Assert.AreEqual(mContato.Object.Id, contatoResultado.Id); Assert.AreEqual(mContato.Object.Nome, contatoResultado.Nome); Assert.AreEqual(1, mContato.Object.Telefones.Count); Assert.AreEqual(mTelefone.Numero, contatoResultado.Telefones[0].Numero); Assert.AreEqual(mTelefone.Id, contatoResultado.Telefones[0].Id); Assert.AreEqual(mContato.Object.Id, contatoResultado.Telefones[0].ContatoId); }
public void DeveSerPossivelObterContatoComListaTelefone() { Guid telefoneId = Guid.NewGuid(); Guid contatoId = Guid.NewGuid(); List <ITelefone> lstTelefone = new List <ITelefone>(); //Monta //Criar Moq de IContato Mock <IContato> mContato = IContatoConstr.Um().ComId(contatoId).ComNome("João").Obter(); //mContato.SetupGet(o => o.Id).Returns(contatoId); //mContato.SetupGet(o => o.Nome).Returns("João"); mContato.SetupSet(o => o.Telefones = It.IsAny <List <ITelefone> >()) .Callback <List <ITelefone> >(p => lstTelefone = p); //Moq da função ObterPorId de IContatos _contatos.Setup(o => o.Obter(contatoId)).Returns(mContato.Object); //Criar Moq de Itelefone ITelefone mockTelefone = ITelefoneConstr .Um() .Padrao() .ComId(telefoneId) .ComContatoId(contatoId) .Construir(); //Moq da função ObterTodosDoContato de ITelefones _telefones.Setup(o => o.ObterTodosDoContato(contatoId)).Returns(new List <ITelefone> { mockTelefone }); //Excuta //chama o metodo ObterPorId de RepositorioContatos IContato contatoResultado = _repositorioContatos.ObterPorId(contatoId); mContato.SetupGet(o => o.Telefones).Returns(lstTelefone); //Verifica //Verificar se o Conato retornado contém os mesmos dados do Moq Icontato com a lista de Telefones do Moq Itelefone Assert.AreEqual(mContato.Object.Id, contatoResultado.Id); Assert.AreEqual(mContato.Object.Nome, contatoResultado.Nome); Assert.AreEqual(1, contatoResultado.Telefones.Count); Assert.AreEqual(mockTelefone.Numero, contatoResultado.Telefones[0].Numero); Assert.AreEqual(mockTelefone.Id, contatoResultado.Telefones[0].Id); Assert.AreEqual(mContato.Object.Id, contatoResultado.Telefones[0].ContatoId); }
public void DeveSerPossivelObterContatoComListaTelefone() { //Monta var lstTelefones = new List <ITelefone>(); var telefoneId = Guid.NewGuid(); var contatoId = Guid.NewGuid(); //Criar Moq de IContato var mockContato = IContatoConstrutor.ContatoContrutor().Padrao() .RetornaComId(contatoId) .Obter(); mockContato.SetupSet(o => o.Telefones = It.IsAny <List <ITelefone> >()) .Callback <List <ITelefone> >(p => lstTelefones = p); //Moq da funcao ObterPorId de IContatos _contatos.Setup(o => o.Obter(contatoId)).Returns(mockContato.Object); //Criar Moq de ITelefone ITelefone mockTelefone = ITelefoneContrutor.TelefoneContrutor().Padrao() .RetornaComId(telefoneId) .RetornaComContatoId(contatoId) .Construir(); //Moq da funcao ObterTodosPorContato de ITelefones _telefones.Setup(o => o.ObterTodosDoContatos(contatoId)).Returns(new List <ITelefone> { mockTelefone }); //Executa //Chamar o método ObterPorId de RepositorioContatos var contatoResultado = _repositorioContatos.ObterPorId(contatoId); mockContato.SetupGet(o => o.Telefones).Returns(lstTelefones); //Verifica //Verificar se o contato retornado contém os mesmos dados do Moq de IContato com a lista de telefones do Moq ITelefone Assert.AreEqual(mockContato.Object.Id, contatoResultado.Id); Assert.AreEqual(mockContato.Object.Nome, contatoResultado.Nome); Assert.AreEqual(1, mockContato.Object.Telefones.Count); Assert.AreEqual(mockTelefone.Numero, contatoResultado.Telefones[0].Numero); Assert.AreEqual(mockTelefone.Id, contatoResultado.Telefones[0].Id); Assert.AreEqual(mockContato.Object.Id, contatoResultado.Telefones[0].ContatoId); }
public void DeveSerPossivelObterContatoComListaTelefonica() { // Montar Guid telefoneId = Guid.NewGuid(); Guid contatoId = Guid.NewGuid(); List <ITelefone> lstTelefone = new List <ITelefone>(); Mock <IContato> mContato = IContatoCtor.Um().ComId(contatoId).ComNome("João").Obter(); //mContato.SetupGet(o => o.Id).Returns(contatoId); //mContato.SetupGet(o => o.Nome).Returns("João"); mContato.SetupSet(o => o.Telefones = It.IsAny <List <ITelefone> >()) .Callback <List <ITelefone> >(p => lstTelefone = p); _contatos.Setup(o => o.Obter(contatoId)).Returns(mContato.Object); ITelefone mockTelefone = ITelefoneCtor.Um().Padrao() .ComId(telefoneId) .ComContatoId(contatoId) .Construir(); _telefones.Setup(o => o.ObterTodosDoContato(contatoId)).Returns(new List <ITelefone> { mockTelefone }); // Executar var contatoResultado = _repositorioContatos.ObterPorId(Guid.NewGuid()); mContato.SetupGet(o => o.Telefones).Returns(lstTelefone); // Verificar Assert.AreEqual(mContato.Object.Id, contatoResultado.Id); Assert.AreEqual(mContato.Object.Nome, contatoResultado.Nome); Assert.AreEqual(1, contatoResultado.Telefones.Count); Assert.AreEqual(mockTelefone.Numero, contatoResultado.Telefones[0].Numero); Assert.AreEqual(mockTelefone.Id, contatoResultado.Telefones[0].Id); Assert.AreEqual(mContato.Object.Id, contatoResultado.Telefones[0].ContatoId); }