Exemplo n.º 1
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.º 2
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.º 3
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
        }
Exemplo n.º 4
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());
        }
Exemplo n.º 5
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.º 6
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.º 7
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.º 8
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.º 9
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.º 10
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.º 11
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));
        }