public void TesteMaioresNenhumLance()
        {
            Leilao leilao = new CriaLeilao("Carro")
                            .GeraUsuarios(0)
                            .Leilao;

            Assert.Throws <ArgumentException>(() => this.leiloeiro.Avalia(leilao));
        }
        public void TestaLanceZeroeNegativo()
        {
            Leilao leilao = new CriaLeilao("Carro")
                            .GeraUsuarios(2)
                            .Lance(0, 0)
                            .Lance(1, -1)
                            .Leilao;

            Assert.Throws <ArgumentException>(() => this.leiloeiro.Avalia(leilao));
        }
        public void TesteUnicoLance()
        {
            Leilao leilao = new CriaLeilao("Carro")
                            .GeraUsuarios(1)
                            .Lance(0, 200.0)
                            .Leilao;

            // executando a acao
            this.leiloeiro.Avalia(leilao);

            // comparando a saida com o esperado
            Assert.AreEqual(200, this.leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(200, this.leiloeiro.MenorLance, 0.0001);
        }
        public void DeveEntenderLancesEmOrdemCrescente()
        {
            Leilao leilao = new CriaLeilao("Carro")
                            .GeraUsuarios(3)
                            .Lance(0, 500.0)
                            .Lance(1, 1000.0)
                            .Lance(2, 7000.0)
                            .Leilao;

            this.leiloeiro.Avalia(leilao);

            Assert.AreEqual(7000, this.leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(500, this.leiloeiro.MenorLance, 0.0001);
        }
        public void TestLanceMedio()
        {
            Leilao leilao = new CriaLeilao("Carro")
                            .GeraUsuarios(3)
                            .Lance(0, 250.0)
                            .Lance(1, 300.0)
                            .Lance(2, 400.0)
                            .Leilao;

            this.leiloeiro.AvaliaLanceMedio(leilao);

            double mediaEsperada = ((400.0 + 300.0 + 250.0) / 3);

            Assert.AreEqual(mediaEsperada, this.leiloeiro.MediaLance, 0.0001);
        }
        public void TesteMaiores2Lances()
        {
            Leilao leilao = new CriaLeilao("Carro")
                            .GeraUsuarios(2)
                            .Lance(0, 700.0)
                            .Lance(1, 900.0)
                            .Leilao;

            // executando a acao
            this.leiloeiro.Avalia(leilao);

            var lista = this.leiloeiro.TresMaiores;

            Assert.AreEqual(2, lista.Count);
            Assert.AreEqual(900, lista[0].Valor);
            Assert.AreEqual(700, lista[1].Valor);
        }
        public void TesteLancesRandom()
        {
            Leilao leilao = new CriaLeilao("Carro")
                            .GeraUsuarios(3)
                            .Lance(0, 200.0)
                            .Lance(1, 450.0)
                            .Lance(2, 120.0)
                            .Lance(0, 700.0)
                            .Lance(2, 630.0)
                            .Lance(0, 230.0)
                            .Leilao;

            // executando a acao
            this.leiloeiro.Avalia(leilao);

            // comparando a saida com o esperado
            Assert.AreEqual(700, this.leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(120, this.leiloeiro.MenorLance, 0.0001);
        }
        public void TesteLancesDecrescentes()
        {
            Leilao leilao = new CriaLeilao("Carro")
                            .GeraUsuarios(3)
                            .Lance(0, 700.0)
                            .Lance(1, 600.0)
                            .Lance(2, 500.0)
                            .Lance(0, 400.0)
                            .Lance(2, 300.0)
                            .Lance(0, 200.0)
                            .Leilao;

            // executando a acao
            this.leiloeiro.Avalia(leilao);

            // comparando a saida com o esperado
            Assert.AreEqual(700, this.leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(200, this.leiloeiro.MenorLance, 0.0001);
        }