コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }