Exemple #1
0
        public void DeveEntenderLancesEmOrdemCrescente()
        {
            //cenario
            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 300));
            leilao.Propoe(new Lance(jose, 400));
            leilao.Propoe(new Lance(maria, 250));

            //acao
            leiloeiro.Avalia(leilao);

            //validacao
            double maiorEsperado = 400;
            double menorEsperado = 250;

            Assert.AreEqual(maiorEsperado, leiloeiro.MaiorLance);
            Assert.AreEqual(menorEsperado, leiloeiro.MenorLance);
        }
Exemple #2
0
        public void Avalia(Leilao leilao)
        {
            if (leilao.Lances.Count == 0)
            {
                throw new Exception("Não eh possível avaliar um leilão sem lances");
            }

            foreach (var lance in leilao.Lances)
            {
                if (lance.Valor > maiorDeTodos)
                {
                    maiorDeTodos = lance.Valor;
                }

                if (lance.Valor < menorDeTodos)
                {
                    menorDeTodos = lance.Valor;
                }
            }

            pegaOsMaiores(leilao);
        }
Exemple #3
0
 private void pegaOsMaiores(Leilao leilao)
 {
     maioresLances = new List <Lance>(leilao.Lances.OrderByDescending(x => x.Valor));
     maioresLances = maioresLances.GetRange(0, maioresLances.Count > 3 ? 3 : maioresLances.Count);
 }
Exemple #4
0
 public CriadorDeLeilao Para(String descricao)
 {
     this.leilao = new Leilao(descricao);
     return(this);
 }