public void DeveEncerrarOsLEiloesESalvarNoDao()
        {
            var diaDaSemanaPassada = new DateTime(1999, 5, 5);

            var leilao1 = new Leilao("Tv de plasma");

            leilao1.naData(diaDaSemanaPassada);
            var leilao2 = new Leilao("Playstation");

            leilao2.naData(diaDaSemanaPassada);

            var ListaDeLeioloes = new List <Leilao> {
                leilao1, leilao2
            };

            var dao = new Mock <IRepositorioDeLeiloes>();

            dao.Setup(d => d.correntes())
            .Returns(ListaDeLeioloes);

            var carteiro = new Mock <ICarteiro>();

            var encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.encerra();

            dao.Verify(v => v.atualiza(leilao1), Times.Once);
            dao.Verify(v => v.atualiza(leilao2), Times.Once);
        }
        public void DeveContinuarMesmoQuandoLancaExcecaoNoCarteiro()
        {
            var diaDaSemanaPassada = new DateTime(1999, 5, 5);

            var leilao1 = new Leilao("Tv de plasma");

            leilao1.naData(diaDaSemanaPassada);
            var leilao2 = new Leilao("Playstation");

            leilao2.naData(diaDaSemanaPassada);

            var ListaDeLeioloes = new List <Leilao> {
                leilao1, leilao2
            };

            var dao = new Mock <LeilaoDaoFalso>();

            dao.Setup(d => d.correntes()).Returns(ListaDeLeioloes);
            var carteiro = new Mock <ICarteiro>();

            carteiro.Setup(c => c.envia(leilao1)).Throws(new Exception());
            var encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.encerra();

            dao.Verify(d => d.atualiza(leilao2), Times.Once);
            carteiro.Verify(c => c.envia(leilao2), Times.Once);
        }
        public void NaoDeveEnviarEmailCasoTodasChamadasDoAtualizaLancemExcecoes()
        {
            var diaDaSemanaPassada = new DateTime(1999, 5, 5);

            var leilao1 = new Leilao("Tv de plasma");

            leilao1.naData(diaDaSemanaPassada);
            var leilao2 = new Leilao("Playstation");

            leilao2.naData(diaDaSemanaPassada);
            var leilao3 = new Leilao("Playstation");

            leilao3.naData(diaDaSemanaPassada);

            var ListaDeLeioloes = new List <Leilao> {
                leilao1, leilao2, leilao3
            };

            var dao = new Mock <LeilaoDaoFalso>();

            dao.Setup(d => d.correntes()).Returns(ListaDeLeioloes);
            dao.Setup(d => d.atualiza(It.IsAny <Leilao>())).Throws(new Exception());
            var carteiro   = new Mock <ICarteiro>();
            var encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.encerra();

            carteiro.Verify(c => c.envia(It.IsAny <Leilao>()), Times.Never);
        }
Exemplo n.º 4
0
        public void Should_do_not_update_auctions_fineshed()
        {
            //Given
            DateTime data = new DateTime(2016, 2, 15);

            Leilao leilao1 = new Leilao("Tv 20 polegadas");

            leilao1.naData(data);

            List <Leilao> listaRetorno = new List <Leilao>();

            listaRetorno.Add(leilao1);

            var dao      = new Mock <LeilaoDaoFalso>();
            var carteiro = new Mock <Carteiro>();

            dao.Setup(m => m.Correntes()).Returns(listaRetorno);

            //When
            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            // verify aqui !
            dao.Verify(d => d.Salva(leilao1), Times.Never());
            dao.Verify(d => d.Atualiza(leilao1), Times.Exactly(1));
            dao.Verify(d => d.Atualiza(leilao1), Times.AtLeastOnce());
            dao.Verify(d => d.Correntes(), Times.AtLeastOnce());
            dao.Verify(d => d.Correntes(), Times.AtLeast(1));
            dao.Verify(d => d.Atualiza(leilao1), Times.AtMost(1));
            dao.Verify(d => d.Correntes(), Times.AtMost(1));
            //Then
        }
        public void DeveEncerrarLeiloesQueComecaramAUmaSemana()
        {
            DateTime diaDaSemanaPassada = new DateTime(1999, 5, 5);

            var leilao1 = new Leilao("Tv de plasma");

            leilao1.naData(diaDaSemanaPassada);
            var leilao2 = new Leilao("Playstation");

            leilao2.naData(diaDaSemanaPassada);

            var ListaDeLeioloes = new List <Leilao> {
                leilao1, leilao2
            };

            var dao = new Mock <IRepositorioDeLeiloes>();

            dao.Setup(d => d.correntes())
            .Returns(ListaDeLeioloes);

            var carteiro = new Mock <ICarteiro>();

            var encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.encerra();

            Assert.AreEqual(2, encerrador.total);
            Assert.IsTrue(leilao1.encerrado);
            Assert.IsTrue(leilao2.encerrado);
        }
Exemplo n.º 6
0
        public void deveEncerrarLeiloesQueComecaramUmaSemanaAntesVerificarAtualizacaoDuplicada()
        {
            DateTime data = new DateTime(2014, 05, 05);

            Leilao leilao1 = new Leilao("Tv 20 polegadas", data);
            Leilao leilao2 = new Leilao("Play 2", data);

            List <Leilao> leiloesAntigos = new List <Leilao>();

            leiloesAntigos.Add(leilao1);
            leiloesAntigos.Add(leilao2);

            // criando o mock
            var dao = new Mock <LeilaoDaoFalso>();

            // ensinando a retornar os leiloes antigos quando chamar o correntes
            dao.Setup(m => m.correntes()).Returns(leiloesAntigos);

            var carteiro = new Mock <Carteiro>();

            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();


            Assert.AreEqual(2, leiloesAntigos.Count);
            Assert.IsTrue(leiloesAntigos[0].encerrado);
            Assert.IsTrue(leiloesAntigos[1].encerrado);

            //verifica se o método f oi invocado
            dao.Verify(m => m.atualiza(leilao1), Times.AtLeast(2));
            dao.Verify(m => m.atualiza(leilao2));
        }
Exemplo n.º 7
0
        public void Should_fineshed_aoction_that_started_today()
        {
            //Given
            DateTime diaDaSemanaPassada = DateTime.Now;

            Leilao leilao1 = new Leilao("Tv de plasma");

            leilao1.naData(diaDaSemanaPassada);

            Leilao leilao2 = new Leilao("Playstation");

            leilao2.naData(diaDaSemanaPassada);

            List <Leilao> ListaDeLeiloes = new List <Leilao>();

            ListaDeLeiloes.Add(leilao1);
            ListaDeLeiloes.Add(leilao2);

            var dao      = new Mock <RepositorioDeLeiloes>();
            var carteiro = new Mock <Carteiro>();

            dao.Setup(d => d.Correntes())
            .Returns(ListaDeLeiloes);
            //When
            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            //Then
            Assert.Equal(0, encerrador.Total);
            Assert.False(leilao1.encerrado);
            Assert.False(leilao2.encerrado);
        }
Exemplo n.º 8
0
        public void NaoDeveInvocarOEnvio()
        {
            DateTime data    = new DateTime(2014, 05, 05);
            Leilao   leilao1 = new Leilao("Tv 20 polegadas", data);

            Leilao leilao2 = new Leilao("Play 2", data);


            List <Leilao> listaRetorno = new List <Leilao>();

            listaRetorno.Add(leilao1);
            listaRetorno.Add(leilao2);

            var dao = new Mock <LeilaoDaoFalso>();

            dao.Setup(m => m.correntes()).Returns(listaRetorno);

            var carteiro = new Mock <Carteiro>();

            //aqui indico quanndo devo gerar a exceção em que método
            dao.Setup(m => m.atualiza(leilao1)).Throws(new Exception());
            dao.Setup(m => m.atualiza(leilao2)).Throws(new Exception());

            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            dao.Verify(m => m.atualiza(leilao2));
            carteiro.Verify(c => c.Envia(leilao1), Times.Never());
            carteiro.Verify(c => c.Envia(leilao2), Times.Never());
        }
        public void NaoDeveEncerrarLeilaoQueComecouHoje()
        {
            var diaDaSemanaPassada = DateTime.Now;

            var leilao = new Leilao("Tv de plasma");

            leilao.naData(diaDaSemanaPassada);

            var ListaDeLeioloes = new List <Leilao> {
                leilao
            };

            var daoFalso = new Mock <IRepositorioDeLeiloes>();

            daoFalso.Setup(metodo => metodo.correntes())
            .Returns(ListaDeLeioloes);
            var carteiro = new Mock <ICarteiro>();

            var encerrador = new EncerradorDeLeilao(daoFalso.Object, carteiro.Object);

            encerrador.encerra();

            Assert.AreEqual(0, encerrador.total);
            Assert.IsFalse(leilao.encerrado);
        }
        public void EncerradorNaoDeveFazerNada()
        {
            var daoFalso = new Mock <IRepositorioDeLeiloes>();

            daoFalso.Setup(m => m.correntes()).Returns(new List <Leilao>());
            var carteiro = new Mock <ICarteiro>();

            var encerrador = new EncerradorDeLeilao(daoFalso.Object, carteiro.Object);

            encerrador.encerra();

            Assert.AreEqual(0, encerrador.total);
        }
Exemplo n.º 11
0
        public void Should_return_nothing_when_dont_have_auction()
        {
            //Given
            var dao      = new Mock <RepositorioDeLeiloes>();
            var carteiro = new Mock <Carteiro>();

            dao.Setup(d => d.Correntes())
            .Returns(new List <Leilao>());
            //When
            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            //Then
            Assert.Equal(0, encerrador.Total);
        }
Exemplo n.º 12
0
        public void NaoDeveAtualizaOsLeiloesComAteUmaSemana()
        {
            DateTime      data         = new DateTime(2016, 02, 06);
            Leilao        leilao1      = new Leilao("Tv 20 polegadas", data);
            List <Leilao> listaRetorno = new List <Leilao>();

            listaRetorno.Add(leilao1);

            var dao = new Mock <LeilaoDaoFalso>();

            dao.Setup(m => m.correntes()).Returns(listaRetorno);

            var carteiro = new Mock <Carteiro>();

            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            dao.Verify(m => m.atualiza(leilao1), Times.Never());
        }
Exemplo n.º 13
0
        public void Should_throw_exceptions_for_all_throws_in_auction()
        {
            //Given
            DateTime diaDaSemanaPassada = new DateTime(1999, 05, 05);

            Leilao leilao1 = new Leilao("Tv de plasma");

            leilao1.naData(diaDaSemanaPassada);

            Leilao leilao2 = new Leilao("Playstation");

            leilao2.naData(diaDaSemanaPassada);

            List <Leilao> ListaDeLeiloes = new List <Leilao>();

            ListaDeLeiloes.Add(leilao1);
            ListaDeLeiloes.Add(leilao2);

            // MOCK
            var dao = new Mock <RepositorioDeLeiloes>();

            dao.Setup(d => d.Correntes())
            .Returns(ListaDeLeiloes);
            dao.Setup(c => c.Atualiza(leilao1))
            .Throws(new Exception());
            dao.Setup(c => c.Atualiza(leilao2))
            .Throws(new Exception());

            var carteiro = new Mock <Carteiro>();

            //When
            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            //Then
            carteiro.Verify(c => c.envia(It.IsAny <Leilao>()), Times.Never());
            // carteiro.Verify(c => c.envia(leilao1), Times.Never());
            // carteiro.Verify(c => c.envia(leilao2), Times.Never());
        }
Exemplo n.º 14
0
        public void Should_continue_even_make_it_when_throw_exception_sending_mail()
        {
            //Given
            DateTime diaDaSemanaPassada = new DateTime(1999, 05, 05);

            Leilao leilao1 = new Leilao("Tv de plasma");

            leilao1.naData(diaDaSemanaPassada);

            Leilao leilao2 = new Leilao("Playstation");

            leilao2.naData(diaDaSemanaPassada);

            List <Leilao> ListaDeLeiloes = new List <Leilao>();

            ListaDeLeiloes.Add(leilao1);
            ListaDeLeiloes.Add(leilao2);

            // MOCK
            var dao = new Mock <RepositorioDeLeiloes>();

            dao.Setup(d => d.Correntes())
            .Returns(ListaDeLeiloes);

            var carteiro = new Mock <Carteiro>();

            carteiro.Setup(c => c.envia(leilao1))
            .Throws(new Exception());

            //When
            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            //Then
            dao.Verify(d => d.Atualiza(leilao1), Times.Once, "Error when verifica if the second auction was method update used");
            dao.Verify(d => d.Atualiza(leilao2), Times.Once, "Error when verifica if the second auction was method update used");
            carteiro.Verify(c => c.envia(leilao2), Times.Once());
        }
Exemplo n.º 15
0
        public void DeveEncerrarLeiloesQueComecaramUmaSemanaAntes()
        {
            DateTime data     = new DateTime(2016, 01, 01);
            Leilao   leilao1  = new Leilao("tv 20 polegadas", data);
            Leilao   leilao2  = new Leilao("PlayStation", data);
            var      carteiro = new Mock <Carteiro>();

            //LeilaoDaoFalso dao = new LeilaoDaoFalso();
            //dao.salva(leilao1);
            //dao.salva(leilao2);

            List <Leilao> leiloesAntigos = new List <Leilao>();

            leiloesAntigos.Add(leilao1);
            leiloesAntigos.Add(leilao2);

            var dao = new Mock <LeilaoDaoFalso>();

            dao.Setup(m => m.correntes()).Returns(leiloesAntigos);

            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            Assert.AreEqual(2, encerrador.total);
            Assert.IsTrue(leilao1.encerrado);
            Assert.IsTrue(leilao2.encerrado);

            //leiloesAntigos = encerrador.Encerra().ToList();

            //Assert.AreEqual(2, leiloesAntigos.Count);

            //Console.Write(leiloesAntigos.Count);
            //Console.Write(encerrador.ComecouSemanaPassada(leiloesAntigos[1]));

            //Assert.IsTrue(leiloesAntigos[0].encerrado);
            //Assert.IsTrue(leiloesAntigos[1].encerrado);
        }
Exemplo n.º 16
0
        public void Should_fineshed_aoctions_and_save_in_dao()
        {
            //Given
            DateTime diaDaSemanaPassada = new DateTime(1999, 05, 05);

            Leilao leilao1 = new Leilao("Tv de plasma");

            leilao1.naData(diaDaSemanaPassada);

            Leilao leilao2 = new Leilao("Playstation");

            leilao2.naData(diaDaSemanaPassada);

            List <Leilao> ListaDeLeiloes = new List <Leilao>();

            ListaDeLeiloes.Add(leilao1);
            ListaDeLeiloes.Add(leilao2);

            var dao      = new Mock <RepositorioDeLeiloes>();
            var carteiro = new Mock <Carteiro>();

            dao.Setup(d => d.Correntes())
            .Returns(ListaDeLeiloes);

            //When
            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            dao.Verify(d => d.Atualiza(leilao1), Times.Once, "Error when verifica if the first auction was method update used");
            dao.Verify(d => d.Atualiza(leilao2), Times.Once, "Error when verifica if the second auction was method update used");

            //Then
            // Assert.Equal(0, encerrador.Total);
            // Assert.False(leilao1.encerrado);
            // Assert.False(leilao2.encerrado);
        }
Exemplo n.º 17
0
        public void NaoDeveInvocarOEnvioItIsAny()
        {
            DateTime data    = new DateTime(2014, 05, 05);
            Leilao   leilao1 = new Leilao("Tv 20 polegadas", data);

            Leilao leilao2 = new Leilao("Play 2", data);


            List <Leilao> listaRetorno = new List <Leilao>();

            listaRetorno.Add(leilao1);
            listaRetorno.Add(leilao2);

            var dao = new Mock <LeilaoDaoFalso>();

            dao.Setup(m => m.correntes()).Returns(listaRetorno);

            var carteiro = new Mock <Carteiro>();

            //aqui indico quanndo devo gerar a exceção em que método
            dao.Setup(m => m.atualiza(leilao1)).Throws(new Exception());
            dao.Setup(m => m.atualiza(leilao2)).Throws(new Exception());

            EncerradorDeLeilao encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.Encerra();

            //carteiro.Verify(c => c.Envia(leilao1), Times.Never());
            //carteiro.Verify(c => c.Envia(leilao2), Times.Never());

            //aqui informo que quero verificar todas as vezes que o método foi executado inependente de quem ele está enviado

            carteiro.Verify(c => c.Envia(It.IsAny <Leilao>()), Times.Never());

            //verify(carteiroFalso,never()).envia(NaoDeveInvocarOEnvioItIsAny(Leilao.class));
        }
        public void NaoDeveAtualizaOsLeiloesEncerrados()
        {
            DateTime data = DateTime.Now;

            Leilao leilao1 = new Leilao("Tv 20 polegadas");

            leilao1.naData(data);

            List <Leilao> listaRetorno = new List <Leilao>();

            listaRetorno.Add(leilao1);

            var dao = new Mock <LeilaoDaoFalso>();

            dao.Setup(m => m.correntes()).Returns(listaRetorno);

            var carteiro = new Mock <ICarteiro>();

            var encerrador = new EncerradorDeLeilao(dao.Object, carteiro.Object);

            encerrador.encerra();

            dao.Verify(v => v.atualiza(leilao1), Times.Never);
        }