Beispiel #1
0
        public void NaoDeveAceitarMaisDeCincoLancesDoMesmoUsuario()
        {
            var michelTemer  = new Usuario("Michel Temer");
            var dilmaRoussef = new Usuario("Dulma Roussef");

            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Notebook Positivo")
                         .comLance(michelTemer, 100)
                         .comLance(dilmaRoussef, 200)
                         .comLance(michelTemer, 300)
                         .comLance(dilmaRoussef, 400)
                         .comLance(michelTemer, 500)
                         .comLance(dilmaRoussef, 600)
                         .comLance(michelTemer, 700)
                         .comLance(dilmaRoussef, 800)
                         .comLance(michelTemer, 900)
                         .comLance(dilmaRoussef, 1000)
                         .comLance(michelTemer, 1100)
                         .Constroi();

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

            var ultimoIndex = leilao.Lances.Count - 1;
            var ultimoLance = leilao.Lances[ultimoIndex];

            Assert.AreEqual(1000, ultimoLance.Valor, 0.00001);
        }
Beispiel #2
0
        public void TestaMaioresSemNenhumLance()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Amendoim torrado")
                         .Constroi();

            Assert.That(() => avaliador.Avalia(leilao), Throws.TypeOf <Exception>());
            //Assert.Throws<Exception>(() => avaliador.Avalia(leilao)); <- Alternativa da internet.
        }
Beispiel #3
0
        public void DeveReceberUmLance()
        {
            var leilao = new LeilaoTDBuilder().NovoLeilaoDe("Notebook Acer").Constroi();

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

            leilao.Propoe(new Lance(new Usuario("Bill Gates"), 5000));

            Assert.AreEqual(1, leilao.Lances.Count());
            Assert.AreEqual(5000, leilao.Lances[0].Valor, 0.0001);
        }
Beispiel #4
0
        public void TestaLeilaoComUmLance()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Cadeira Gamer")
                         .comLance(joao, 200)
                         .Constroi();

            avaliador.Avalia(leilao);

            Assert.AreEqual(200, avaliador.MenorLance, 0.00001);
            Assert.AreEqual(200, avaliador.MaiorLance, 0.00001);
        }
Beispiel #5
0
        public void DeveReceberVariosLances()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Notebook Avell")
                         .comLance(new Usuario("Bill Gates"), 5000)
                         .comLance(new Usuario("Rita Lee"), 4000)
                         .Constroi();

            Assert.AreEqual(2, leilao.Lances.Count());
            Assert.AreEqual(5000, leilao.Lances[0].Valor, 0.0001);
            Assert.AreEqual(4000, leilao.Lances[1].Valor, 0.0001);
        }
Beispiel #6
0
        public void TestaCalculoDeMediaDosLances()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Ipad Air")
                         .comLance(joao, 897)
                         .comLance(maria, 2039)
                         .comLance(joao, 183)
                         .Constroi();

            avaliador.Avalia(leilao);

            Assert.AreEqual(1039.666666667, avaliador.LanceMedio, 0.00001);
        }
Beispiel #7
0
        public void NaoDeveAceitarLancesSeguidosDoMesmoUsuario()
        {
            var michelTemer = new Usuario("Michel Temer");

            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Notebook Positivo")
                         .comLance(michelTemer, 1500)
                         .comLance(michelTemer, 4000)
                         .Constroi();

            Assert.AreEqual(1, leilao.Lances.Count());
            Assert.AreEqual(1500, leilao.Lances[0].Valor, 0.0001);
        }
Beispiel #8
0
        public void TestaMaioresComDoisLances()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Pendrive 1TB")
                         .comLance(joao, 400)
                         .comLance(maria, 200)
                         .Constroi();

            avaliador.Avalia(leilao);

            Assert.AreEqual(2, avaliador.TresMaiores.Count);
            Assert.AreEqual(400, avaliador.TresMaiores[0].Valor, 0.00001);
            Assert.AreEqual(200, avaliador.TresMaiores[1].Valor, 0.00001);
        }
Beispiel #9
0
        public void TestaLeilaoComLancesDecrescentes()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Guarda-chuva família")
                         .comLance(joao, 400)
                         .comLance(maria, 300)
                         .comLance(joao, 200)
                         .comLance(maria, 100)
                         .Constroi();

            avaliador.Avalia(leilao);

            Assert.AreEqual(100, avaliador.MenorLance, 0.00001);
            Assert.AreEqual(400, avaliador.MaiorLance, 0.00001);
        }
Beispiel #10
0
        public void DeveEntenderLancesCrescentes()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Galaxy S9+")
                         .comLance(joao, 200)
                         .comLance(pedro, 300)
                         .comLance(maria, 500)
                         .Constroi();

            //2-AÇÃO:
            avaliador.Avalia(leilao);

            //3-VALIDAÇÃO:
            Assert.AreEqual(200, avaliador.MenorLance, 0.00001);
            Assert.AreEqual(500, avaliador.MaiorLance, 0.00001);
        }
Beispiel #11
0
        public void DeveDuplicarUmLance()
        {
            var alguem      = new Usuario("Uma Pessoa");
            var outroalguem = new Usuario("Outra Pessoa");

            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Ultrabook Acer")
                         .comLance(alguem, 300)
                         .comLance(outroalguem, 400)
                         .Constroi();

            leilao.DobraLance(alguem);

            Assert.AreEqual(3, leilao.Lances.Count);
            Assert.AreEqual(600, leilao.Lances.Last().Valor);
        }
Beispiel #12
0
        public void TestaLeilaoComLancesAleatorios()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Net Gato")
                         .comLance(joao, 200)
                         .comLance(maria, 450)
                         .comLance(joao, 120)
                         .comLance(maria, 700)
                         .comLance(joao, 630)
                         .comLance(maria, 230)
                         .Constroi();

            avaliador.Avalia(leilao);

            Assert.AreEqual(120, avaliador.MenorLance, 0.00001);
            Assert.AreEqual(700, avaliador.MaiorLance, 0.00001);
        }
Beispiel #13
0
        public void TestaMaioresComQuatroLances()
        {
            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Caneta de pena")
                         .comLance(joao, 400)
                         .comLance(maria, 200)
                         .comLance(joao, 300)
                         .comLance(maria, 100)
                         .Constroi();

            avaliador.Avalia(leilao);

            Assert.AreEqual(3, avaliador.TresMaiores.Count);
            Assert.AreEqual(400, avaliador.TresMaiores[0].Valor, 0.00001);
            Assert.AreEqual(300, avaliador.TresMaiores[1].Valor, 0.00001);
            Assert.AreEqual(200, avaliador.TresMaiores[2].Valor, 0.00001);
        }
Beispiel #14
0
        public void NaoDeveDuplicarPoisNaoHaLancesAnteriores()
        {
            var alguem      = new Usuario("Uma Pessoa");
            var outroalguem = new Usuario("Outra Pessoa");

            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Ipad 2")
                         .comLance(alguem, 300)
                         .Constroi();

            leilao.Propoe(new Lance(alguem, 300));

            leilao.DobraLance(outroalguem);

            Assert.AreEqual(1, leilao.Lances.Count);
            Assert.AreEqual(300, leilao.Lances.Last().Valor);
        }
Beispiel #15
0
        public void DeveDuplicarApenasOUltimoLanceEntreDois()
        {
            var alguem      = new Usuario("Uma Pessoa");
            var outroalguem = new Usuario("Outra Pessoa");

            var leilao = new LeilaoTDBuilder()
                         .NovoLeilaoDe("Laser Pointer")
                         .comLance(alguem, 300)
                         .comLance(outroalguem, 400)
                         .comLance(alguem, 500)
                         .comLance(outroalguem, 600)
                         .Constroi();

            leilao.DobraLance(alguem);

            Assert.AreEqual(5, leilao.Lances.Count);
            Assert.AreEqual(1000, leilao.Lances.Last().Valor);
        }