예제 #1
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
        }
예제 #2
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);
        }
        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 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);
        }
        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 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);
        }
        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 DeveJogarParaOProximoDiaUtilCasoDomingo()
        {
            var leilaoDao    = new Mock <LeilaoDaoFalso>();
            var avaliador    = new Avaliador();
            var pagamentoDao = new Mock <IPagamentoDao>();
            var relogio      = new Mock <IRelogio>();

            relogio.Setup(r => r.hoje()).Returns(new DateTime(2018, 3, 11));
            var leilao1 = new Leilao("Playstation");

            leilao1.naData(new DateTime(1999, 5, 5));
            leilao1.propoe(new Lance(new Usuario("renan"), 500));
            leilao1.propoe(new Lance(new Usuario("Felipe"), 600));
            var listaDeLeiloes = new List <Leilao> {
                leilao1
            };

            leilaoDao.Setup(l => l.encerrados()).Returns(listaDeLeiloes);

            Pagamento pagamentoCapturado = null;

            pagamentoDao.Setup(p => p.Salvar(It.IsAny <Pagamento>())).Callback <Pagamento>(c => pagamentoCapturado = c);

            var gerador = new GeradorDePagamento(leilaoDao.Object, avaliador, pagamentoDao.Object, relogio.Object);

            gerador.gera();

            Assert.AreEqual(DayOfWeek.Monday, pagamentoCapturado.data.DayOfWeek);
        }
        public void DeveGerarPagamentoParaLeilaoEncerrado()
        {
            var leilaoDao    = new Mock <LeilaoDaoFalso>();
            var avaliador    = new Avaliador();
            var pagamentoDao = new Mock <IPagamentoDao>();

            var leilao1 = new Leilao("Playstation");

            leilao1.naData(new DateTime(1999, 5, 5));
            leilao1.propoe(new Lance(new Usuario("renan"), 500));
            leilao1.propoe(new Lance(new Usuario("Felipe"), 600));
            var listaDeLeiloes = new List <Leilao> {
                leilao1
            };

            leilaoDao.Setup(l => l.encerrados()).Returns(listaDeLeiloes);

            Pagamento pagamentoCapturado = null;

            pagamentoDao.Setup(p => p.Salvar(It.IsAny <Pagamento>())).Callback <Pagamento>(c => pagamentoCapturado = c);

            var gerador = new GeradorDePagamento(leilaoDao.Object, avaliador, pagamentoDao.Object);

            gerador.gera();

            Assert.AreEqual(600, pagamentoCapturado.valor);
        }
예제 #10
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());
        }
예제 #11
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());
        }
        public void Should_lunch_for_next_util_day_if_tody_is_sunday()
        {
            //Given
            var leilaoDao    = new Mock <LeilaoDaoFalso>();
            var pagaemntoDao = new Mock <PagamentoDao>();
            var relogio      = new Mock <Relogio>();

            Leilao leilao1 = new Leilao("Playstation");

            leilao1.naData(new DateTime(1999, 5, 5));

            //When
            leilao1.propoe(new Lance(new Usuario("Renan"), 500));
            leilao1.propoe(new Lance(new Usuario("Felipe"), 600));

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

            listaDeLeiloes.Add(leilao1);

            relogio.Setup(r => r.Hoje())
            .Returns(new DateTime(2017, 2, 19));

            leilaoDao.Setup(l => l.Encerrados())
            .Returns(listaDeLeiloes);

            Pagamento pagamentoCapiturado = null;

            pagaemntoDao.Setup(p => p.Salvar(It.IsAny <Pagamento>()))
            .Callback <Pagamento>(r => pagamentoCapiturado = r);

            GeradorDePagamento gerador = new GeradorDePagamento(leilaoDao.Object, new Avaliador(), pagaemntoDao.Object, relogio.Object);

            gerador.Gera();

            //Then
            Assert.Equal(DayOfWeek.Sunday, relogio.Object.Hoje().DayOfWeek);
            Assert.Equal(DayOfWeek.Monday, pagamentoCapiturado.data.DayOfWeek);
        }
        public void Should_generator_payment_for_throw_fineshed()
        {
            //Given
            var leilaoDao    = new Mock <LeilaoDaoFalso>();
            var avaliador    = new Mock <Avaliador>();
            var pagaemntoDao = new Mock <PagamentoDao>();

            Leilao leilao1 = new Leilao("Playstation");

            leilao1.naData(new DateTime(1999, 5, 5));

            //When
            leilao1.propoe(new Lance(new Usuario("Renan"), 500));
            leilao1.propoe(new Lance(new Usuario("Felipe"), 600));

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

            listaDeLeiloes.Add(leilao1);

            leilaoDao.Setup(l => l.Encerrados())
            .Returns(listaDeLeiloes);

            avaliador.Setup(a => a.maiorValor)
            .Returns(600);

            Pagamento pagemntoCapturado = null;

            pagaemntoDao.Setup(p => p.Salvar(It.IsAny <Pagamento>()))
            .Callback <Pagamento>(r => pagemntoCapturado = r);

            GeradorDePagamento gerador = new GeradorDePagamento(leilaoDao.Object, new Avaliador(), pagaemntoDao.Object);

            gerador.Gera();

            //Then
            Assert.NotNull(pagemntoCapturado);
            Assert.Equal(600, pagemntoCapturado.valor);
        }
예제 #14
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);
        }
        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);
        }