public void DeveEntenderLancesEmOrdemCrescente()
        {
            // cenario: 3 lances em ordem crescente
            Usuario joao  = new Usuario("Joao");
            Usuario jose  = new Usuario("José");
            Usuario maria = new Usuario("Maria");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(maria, 250.0));
            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(jose, 400.0));

            // executando a acao
            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            // comparando a saida com o esperado
            double maiorEsperado = 400;
            double menorEsperado = 250;

            Assert.AreEqual(maiorEsperado, leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(menorEsperado, leiloeiro.MenorLance, 0.0001);
        }
        public void NaoDeveAceitarMaisQueCincoLancesDoMesmoUsuarioComODobrar()
        {
            var leilao = new Leilao("Impressora HP Deskjet 2540");
            var joao   = new Usuario("João");
            var maria  = new Usuario("Maria");

            leilao.Propoe(new Lance(joao, 1000));
            leilao.Propoe(new Lance(maria, 2000));

            leilao.Propoe(new Lance(joao, 3000));
            leilao.Propoe(new Lance(maria, 4000));

            leilao.Propoe(new Lance(joao, 5000));
            leilao.Propoe(new Lance(maria, 6000));

            leilao.Propoe(new Lance(joao, 7000));
            leilao.Propoe(new Lance(maria, 8000));

            leilao.Propoe(new Lance(joao, 9000));
            leilao.Propoe(new Lance(maria, 10000));

            leilao.DobrarLance(joao);

            Assert.AreEqual(10, leilao.Lances.Count);
            Assert.AreEqual(10000, leilao.Lances[9].Valor, 0.0001);
        }
        public void Should_find_three_max_values()
        {
            //Given
            Usuario joao   = new Usuario("Joao");
            Usuario maria  = new Usuario("Maria");
            Leilao  leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 100.0));
            leilao.Propoe(new Lance(maria, 200.0));
            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(maria, 400.0));

            //When
            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            var maiores = leiloeiro.TresMaiores;

            //Then
            Assert.Equal(3, maiores.Count);
            Assert.Equal(400, maiores[0].Valor, 2);
            Assert.Equal(300, maiores[1].Valor, 2);
            Assert.Equal(200, maiores[2].Valor, 2);
        }
        public void Should_process_code()
        {
            // 1st part: scenario (ARRANGE)
            Usuario joao  = new Usuario("Joao");
            Usuario jose  = new Usuario("Jose");
            Usuario maria = new Usuario("Maria");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(jose, 400.0));
            leilao.Propoe(new Lance(maria, 250.0));

            // 2nd part: ACT
            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            // 3rd part: validation (ASSERT)
            double maiorEsperado = 400;
            double menorEsperado = 250;
            double mediaEsperada = 317;

            Assert.Equal(maiorEsperado, leiloeiro.MaiorLance);
            Assert.Equal(menorEsperado, leiloeiro.MenorLance);
            Assert.Equal(mediaEsperada, Math.Ceiling(leiloeiro.MediaLance));
        }
        public void Should_process_code_with_throws_descending_order()
        {
            //Given
            Usuario joao  = new Usuario("Joao");
            Usuario maria = new Usuario("Maria");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 400.0));
            leilao.Propoe(new Lance(maria, 300.0));
            leilao.Propoe(new Lance(joao, 200.0));
            leilao.Propoe(new Lance(maria, 100.0));

            //When
            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            var maiores = leiloeiro.TresMaiores;

            //Then
            Assert.Equal(100, leiloeiro.MenorLance);
            Assert.Equal(400, leiloeiro.MaiorLance);
            Assert.Equal(400, maiores[0].Valor);
            Assert.Equal(300, maiores[1].Valor);
            Assert.Equal(200, maiores[2].Valor);
        }
Beispiel #6
0
        public void ValoreOrdemCrescente()
        {
            Usuario Luan    = new Usuario("Luan");
            Usuario Fabiana = new Usuario("Fabiana");
            Usuario João    = new Usuario("João");

            Leilao leilao = new Leilao("Play4");

            leilao.Propoe(new Lance(Luan, 400));
            leilao.Propoe(new Lance(Fabiana, 300));
            leilao.Propoe(new Lance(João, 200));
            leilao.Propoe(new Lance(Fabiana, 100));

            Avaliador avalia = new Avaliador();

            avalia.Avalia(leilao);

            var maiores = avalia.TresMaiores;
            var menores = avalia.TresMenos;



            Assert.AreEqual(100, menores[0].Valor, 0.0001);
            Assert.AreEqual(400, maiores[0].Valor, 0.0001);
        }
        public void MaximoCincoLancePorUsuarioDobraLance()
        {
            var leilao = new Leilao("Yamaha Fazer 250");

            var tiao  = new Usuario("Sebastiao");
            var tiago = new Usuario("Tiago");

            leilao.Propoe(new Lance(tiao, 1000));
            leilao.Propoe(new Lance(tiago, 1100));

            leilao.DobraLance(tiao);
            leilao.DobraLance(tiago);
            leilao.DobraLance(tiao);
            leilao.DobraLance(tiago);
            leilao.DobraLance(tiao);
            leilao.DobraLance(tiago);
            leilao.DobraLance(tiao);
            leilao.DobraLance(tiago);
            leilao.DobraLance(tiao);
            leilao.DobraLance(tiago);

            Assert.AreEqual(10, leilao.Lances.Count);
            Assert.AreEqual(tiago, leilao.Lances[leilao.Lances.Count - 1].Usuario);
            Assert.AreEqual(17600d, leilao.Lances[leilao.Lances.Count - 1].ValorLance);
        }
Beispiel #8
0
        public void NaoDeveAceitarDoisLancesSeguidosDoMesmoUsuario()
        {
            Leilao leilao = new Leilao("Macbook Pro 15");

            leilao.Propoe(new Lance(stevejobs, 2000));
            leilao.Propoe(new Lance(stevejobs, 3000));

            Assert.AreEqual(1, leilao.Lances.Count);
            Assert.AreEqual(2000, leilao.Lances[0].Valor, 0.00001);
        }
        public void DeveReceberVariosLances()
        {
            Leilao leilao = new Leilao("Macbook Pro 15");

            leilao.Propoe(new Lance(new Usuario("Steve Jobs"), 2000));
            leilao.Propoe(new Lance(new Usuario("Steve Wozniak"), 3000));

            Assert.AreEqual(2, leilao.Lances.Count);
            Assert.AreEqual(2000, leilao.Lances[0].Valor, 0.00001);
            Assert.AreEqual(3000, leilao.Lances[1].Valor, 0.00001);
        }
        public void NaoDeveAceitarDoisLancesSeguidosDoMesmoUsuario()
        {
            var leilao  = new Leilao("Impressora HP Deskjet 2540");
            var usuario = new Usuario("João");

            leilao.Propoe(new Lance(usuario, 1000));
            leilao.Propoe(new Lance(usuario, 2000));

            Assert.AreEqual(1, leilao.Lances.Count);
            Assert.AreEqual(1000, leilao.Lances[0].Valor, 0.0001);
        }
Beispiel #11
0
        public void NaoDeveAceitarDoisLancesSeguidosDoMesmoUsuario()
        {
            Leilao leilao  = new Leilao("Ford Fox 2018");
            var    gustavo = new Usuario("Gustavo");

            leilao.Propoe(new Lance(gustavo, 50000.0));
            leilao.Propoe(new Lance(gustavo, 60000.0));

            Assert.AreEqual(1, leilao.Lances.Count);
            Assert.AreEqual(50000, leilao.Lances[0].Valor, 0.00001);
        }
Beispiel #12
0
        public void NaoDeveAceitar2LancesEmSequenciaDadoPeloMesmoUsuario()
        {
            Usuario usuario = new Usuario("Nome");
            Leilao leilao = new Leilao("Descricao");

            leilao.Propoe(new Lance(usuario, 1));
            leilao.Propoe(new Lance(usuario, 2));

            Assert.AreEqual(1, leilao.Lances.Count);
            Assert.AreEqual(1, leilao.Lances[0].Valor, 0.00001);
        }
Beispiel #13
0
        public void DeveDobrarOUltimoLanceDado()
        {
            Leilao  leilao    = new Leilao("Macbook Pro 15");
            Usuario steveJobs = new Usuario("Steve Jobs");
            Usuario billGates = new Usuario("Bill Gates");

            leilao.Propoe(new Lance(steveJobs, 2000));
            leilao.Propoe(new Lance(billGates, 3000));
            leilao.DobraLance(steveJobs);

            Assert.AreEqual(4000, leilao.Lances[2].Valor, 0.00001);
        }
        public void DeveRealizarUmNovoLanceDobrandoOValorDoUltimoLanceDado()
        {
            var leilao = new Leilao("Impressora HP Deskjet 2540");
            var joao   = new Usuario("João");
            var maria  = new Usuario("Maria");

            leilao.Propoe(new Lance(joao, 20000));
            leilao.Propoe(new Lance(maria, 30000));
            leilao.DobrarLance(joao);

            Assert.AreEqual(3, leilao.Lances.Count);
            Assert.AreEqual(20000 * 2, leilao.Lances[2].Valor, 0.0001);
        }
Beispiel #15
0
        public void UsuarioNaoPodeDar2LancesEmSequencia()
        {
            Leilao leilao = new Leilao("Carro");

            leilao.Propoe(new Lance(new Usuario("caiasdasdasdoasdasd"), 1000));
            leilao.Propoe(new Lance(new Usuario("aline"), 2000));
            leilao.Propoe(new Lance(new Usuario("caio"), 3000));
            leilao.Propoe(new Lance(new Usuario("caio"), 4000));

            Assert.AreEqual(3, leilao.Lances.Count);
            Assert.AreEqual(1000, leilao.Lances[0].Valor);
            Assert.AreEqual(3000, leilao.Lances[2].Valor);
        }
        public void NaoPodeTerDoisLancesSeguidosDoMesmoUSuario()
        {
            var leilao = new Leilao("Yamaha Fazer 250");

            var tiao  = new Usuario("Sebastiao");
            var tiago = new Usuario("Tiago");

            leilao.Propoe(new Lance(tiao, 1500));
            leilao.Propoe(new Lance(tiago, 2000));
            leilao.Propoe(new Lance(tiago, 3000));

            Assert.AreEqual(1, leilao.Lances.Count);
            Assert.AreEqual(3000, leilao.Lances[leilao.Lances.Count - 1].ValorLance);
        }
Beispiel #17
0
        public void DeveTestarLanceDobrado()
        {
            var jobs = new Usuario("Steve Jobs");
            var waz  = new Usuario("Steve Wozniak");

            Leilao leilao = new Leilao("Macbook Pro 15");

            leilao.Propoe(new Lance(jobs, 2000));
            leilao.Propoe(new Lance(waz, 3000));
            leilao.DobrarLance(jobs);

            Assert.AreEqual(3, leilao.Lances.Count);
            Assert.AreEqual(4000, leilao.Lances[2].Valor);
        }
Beispiel #18
0
        public void Should_do_not_accept_two_throws_consecutive()
        {
            //Given
            Leilao leilao    = new Leilao("Macbook Pro 15");
            var    steveJobs = new Usuario("Steve Jobs");

            //When
            leilao.Propoe(new Lance(steveJobs, 2000));
            leilao.Propoe(new Lance(steveJobs, 3000));

            //Then
            Assert.Equal(1, leilao.Lances.Count);
            Assert.Equal(2000, leilao.Lances[0].Valor, 4);
        }
Beispiel #19
0
        public void DeveDobrarOLanceAnteriorDeUmUsuario()
        {
            Usuario usuario1 = new Usuario("Nome1");
            Usuario usuario2 = new Usuario("Nome2");
            Leilao leilao = new Leilao("Descricao");

            leilao.Propoe(new Lance(usuario1, 1));
            leilao.Propoe(new Lance(usuario2, 3));
            leilao.DobraLance(usuario1);

            int contagem = leilao.Lances.Count;
            Assert.AreEqual(3, contagem);
            Assert.AreEqual(2, leilao.Lances[contagem - 1].Valor);
        }
        public void ValorMedio()
        {
            Leilao leilao = new Leilao("playStation 3");

            double medioEsperado = (250.00 + 300.00 + 400.00) / 3;

            leilao.Propoe(new Lance(Usuarios[0], 250.00));
            leilao.Propoe(new Lance(Usuarios[1], 300.00));
            leilao.Propoe(new Lance(Usuarios[2], 400.00));

            leiloeiro.Avalia(leilao);


            Assert.AreEqual(medioEsperado, leiloeiro.ValorMedio);
        }
        //Cenario 6
        public void DeveDevolverTodosLancesCasoNaoHajaNoMinimo3()
        {
            Usuario joao   = new Usuario("Joao");
            Usuario maria  = new Usuario("maria");
            Leilao  leilao = new Leilao("PS4");

            leilao.Propoe(new Lance(joao, 100.0));
            leilao.Propoe(new Lance(maria, 200.0));

            CriaAvaliador();
            leiloeiro.Avalia(leilao);

            Assert.AreEqual(100, leiloeiro.MenorLance, 0.00001);
            Assert.AreEqual(200, leiloeiro.MaiorLance, 0.00001);
        }
Beispiel #22
0
        public void Should_received_many_throws()
        {
            //Given
            Leilao  leilao      = new Leilao("Macbook Pro 15");
            Usuario steveJobs   = new Usuario("Steve Jobs");
            Usuario steveWoznik = new Usuario("Steve Woznik");

            //When
            leilao.Propoe(new Lance(steveJobs, 2000));
            leilao.Propoe(new Lance(steveWoznik, 3000));

            //Then
            Assert.Equal(2, leilao.Lances.Count);
            Assert.Equal(2000, leilao.Lances[0].Valor, 4);
            Assert.Equal(3000, leilao.Lances[1].Valor, 4);
        }
Beispiel #23
0
        public void TesteDeLanceDobrado()
        {
            Leilao  leilao = new Leilao("Carro");
            Usuario caio   = new Usuario("caio");
            Usuario aline  = new Usuario("aline");

            leilao.Propoe(new Lance(caio, 1000));
            leilao.Propoe(new Lance(aline, 2000));
            leilao.Propoe(new Lance(caio, 3000));
            leilao.Propoe(new Lance(aline, 4000));

            leilao.DobrarLance(caio);

            Assert.AreEqual(5, leilao.Lances.Count);
            Assert.AreEqual(6000, leilao.Lances[leilao.Lances.Count - 1].Valor);
        }
Beispiel #24
0
        public void UsuarioDobraOLance()
        {
            Leilao leilao = new Leilao("Macbook Pro 15");

            leilao.Propoe(new Lance(stevejobs, 2000));
            leilao.Propoe(new Lance(billgates, 3000));

            leilao.DobraLance(stevejobs);

            Assert.AreEqual(3, leilao.Lances.Count);
            int   ultimo      = leilao.Lances.Count - 1;
            Lance ultimoLance = leilao.Lances[ultimo];

            Assert.AreEqual(4000.0, ultimoLance.Valor, 0.00001);
            Assert.AreEqual(stevejobs, ultimoLance.Usuario);
        }
        public void DeveReceberVariosLances()
        {
            var leilao = new Leilao("Play Station 3 Novo");

            var leonardo = new Usuario("Leonardo");
            var leandro  = new Usuario("Leandro");

            leilao.Propoe(new Lance(leonardo, 1500));
            leilao.Propoe(new Lance(leandro, 2000));
            leilao.Propoe(new Lance(leonardo, 3000));
            leilao.Propoe(new Lance(leandro, 3600));

            Assert.AreEqual(4, leilao.Lances.Count);
            Assert.AreEqual(1500, leilao.Lances[0].ValorLance);
            Assert.AreEqual(3600, leilao.Lances[3].ValorLance);
        }
        // cenario 5: 3 lances em ordem crescente
        public void DeveEntenderLeilaoComLancesEmOrdemDecrescente()
        {
            Usuario erick    = new Usuario("Erick");
            Usuario marciele = new Usuario("Marciele");
            Leilao  leilao   = new Leilao("Plastation 4");

            leilao.Propoe(new Lance(erick, 400.0));
            leilao.Propoe(new Lance(marciele, 300.0));
            leilao.Propoe(new Lance(erick, 200.0));
            leilao.Propoe(new Lance(marciele, 100.0));

            CriaAvaliador();
            leiloeiro.Avalia(leilao);

            Assert.AreEqual(400, leiloeiro.MaiorLance, 0.00001);
            Assert.AreEqual(100, leiloeiro.MenorLance, 0.00001);
        }
Beispiel #27
0
        public Avaliador MontaCenario()
        {
            Usuario joao    = new Usuario("Joao");
            Usuario jose    = new Usuario("José");
            Usuario maria   = new Usuario("Maria");
            Usuario wesley  = new Usuario("Wesley");
            Usuario will    = new Usuario("Will");
            Usuario natalia = new Usuario("Natalia");
            Usuario cabecao = new Usuario("Cabeção");

            var leilao = new Leilao("Playstation 4 Novo");

            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(jose, 400.0));
            leilao.Propoe(new Lance(maria, 250.0));
            leilao.Propoe(new Lance(wesley, 25.0));
            leilao.Propoe(new Lance(will, 700.0));
            leilao.Propoe(new Lance(natalia, 1000.0));
            leilao.Propoe(new Lance(cabecao, 1000.0));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);
            return(leiloeiro);
        }
Beispiel #28
0
        public void DeveEntenderLancesEmOrdemDecrescente()
        {
            Usuario joao   = new Usuario("João");
            Usuario maria  = new Usuario("Maria");
            Leilao  leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(maria, 400.0));
            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(maria, 200.0));
            leilao.Propoe(new Lance(joao, 100.0));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            Assert.AreEqual(400, leiloeiro.MaiorLance, 0.00001);
            Assert.AreEqual(100, leiloeiro.MenorLance, 0.00001);
        }
        public void DeveEncontrarOsTresMaioresLances()
        {
            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(Usuarios[0], 100.0));
            leilao.Propoe(new Lance(Usuarios[1], 200.0));
            leilao.Propoe(new Lance(Usuarios[0], 300.0));
            leilao.Propoe(new Lance(Usuarios[1], 400.0));

            leiloeiro.Avalia(leilao);

            IList <Lance> maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(3, maiores.Count);
            Assert.AreEqual(400, maiores[0].ValorLance, 0.00001);
            Assert.AreEqual(300, maiores[1].ValorLance, 0.00001);
            Assert.AreEqual(200, maiores[2].ValorLance, 0.00001);
        }
Beispiel #30
0
        public void DeveRetonarApenasDoisLances()
        {
            Usuario joao   = new Usuario("João");
            Usuario maria  = new Usuario("Maria");
            Leilao  leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 100.0));
            leilao.Propoe(new Lance(maria, 200.0));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            IList <Lance> maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(2, maiores.Count);
            Assert.AreEqual(200, maiores[0].Valor, 0.00001);
            Assert.AreEqual(100, maiores[1].Valor, 0.00001);
        }
Beispiel #31
0
        public void DeveEncontrarOsDoisMaioresLances()
        {
            Usuario caio  = new Usuario("Caio");
            Usuario aline = new Usuario("Aline");

            Leilao leilao = new Leilao("Carro");

            leilao.Propoe(new Lance(caio, 500));
            leilao.Propoe(new Lance(aline, 1000));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            var maiores = leiloeiro.Maiores;

            Assert.AreEqual(2, maiores.Count);
            Assert.AreEqual(1000, maiores[0].Valor);
            Assert.AreEqual(500, maiores[1].Valor);
        }
        public void DeveReceberUmLance()
        {
            Leilao leilao = new Leilao("Macbook Pro 15");

            Assert.AreEqual(0, leilao.Lances.Count);

            leilao.Propoe(new Lance(new Usuario("Steve Jobs"), 2000));

            Assert.AreEqual(1, leilao.Lances.Count);
            Assert.AreEqual(2000, leilao.Lances[0].Valor, 0.00001);
        }
Beispiel #33
0
        public void UmMesmoUsuarioNaoPodeDarMaisDoQue5LancesNoMesmoLeilao()
        {
            Usuario usuario1 = new Usuario("Nome1");
            Usuario usuario2 = new Usuario("Nome2");
            Leilao leilao = new Leilao("Descricao");

            leilao.Propoe(new Lance(usuario1, 1));
            leilao.Propoe(new Lance(usuario2, 2));

            leilao.Propoe(new Lance(usuario1, 2));
            leilao.Propoe(new Lance(usuario2, 3));

            leilao.Propoe(new Lance(usuario1, 4));
            leilao.Propoe(new Lance(usuario2, 5));

            leilao.Propoe(new Lance(usuario1, 6));
            leilao.Propoe(new Lance(usuario2, 7));

            leilao.Propoe(new Lance(usuario1, 8));
            leilao.Propoe(new Lance(usuario2, 9));

            leilao.Propoe(new Lance(usuario1, 10));

            int contagem = leilao.Lances.Count;
            Assert.AreEqual(10, contagem);
            Assert.AreEqual(9, leilao.Lances[contagem - 1].Valor, 0.00001);
        }