Exemplo n.º 1
0
        public void DeveLancarUmaExcessaoCasoLeilaoNaoPossuaLances()
        {
            var leilao = new CriadorDeLeilao()
                         .Para("Nintendo Swift")
                         .Constroi();

            Assert.Throws <Exception>(() => leiloeiro.Avalia(leilao));
        }
Exemplo n.º 2
0
        public void NaoDeveDobrarCasoNaoHajaLanceAnterior()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Macbook Pro 15").Constroi();

            leilao.DobraLance(steveJobs);

            Assert.AreEqual(0, leilao.Lances.Count);
        }
Exemplo n.º 3
0
        public void NaoDeveAvaliarLeiloesSemNenhumLanceDado()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation").Constroi();


            Assert.That(() => leiloeiro.Avalia(leilao),
                        Throws.TypeOf <Exception>());
        }
Exemplo n.º 4
0
        public void NaoDeveAceitarDoisLancesSeguidosDoMesmoUsuario()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Macbook Pro 15")
                            .Lance(steveJobs, 2000)
                            .Lance(steveJobs, 3000)
                            .Constroi();

            Assert.AreEqual(1, leilao.Lances.Count);
            Assert.AreEqual(2000, leilao.Lances[0].Valor, 0.00001);
        }
Exemplo n.º 5
0
        public void DeveDobrarUltimoLance()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Macbook Pro 15")
                            .Lance(steveJobs, 2000)
                            .Lance(billGates, 3000)
                            .Constroi();

            leilao.DobraLance(steveJobs);

            Assert.AreEqual(4000, leilao.Lances[2].Valor, 0.00001);
        }
Exemplo n.º 6
0
        public void DeveReceberVariosLances()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Macbook Pro 15")
                            .Lance(steveJobs, 2000)
                            .Lance(steveWozniak, 3000)
                            .Constroi();

            Assert.AreEqual(2, leilao.Lances.Count);
            Assert.AreEqual(2000, leilao.Lances[0].Valor, 0.00001);
            Assert.AreEqual(3000, leilao.Lances[1].Valor, 0.00001);
        }
Exemplo n.º 7
0
        public void DeveReceberUmLance()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Macbook Pro 15").Constroi();

            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);
        }
Exemplo n.º 8
0
        public void DeveEntenderLeilaoComApenasUmLance()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                            .Lance(joao, 250.0)
                            .Constroi();

            leiloeiro.Avalia(leilao);

            Assert.AreEqual(250, leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(250, leiloeiro.MenorLance, 0.0001);
        }
Exemplo n.º 9
0
        public void Teste0LancesEObtem3Maiores()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                            .Constroi();

            leiloeiro.Avalia(leilao);

            IList <Lance> maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(0, maiores.Count);
        }
Exemplo n.º 10
0
        public void NaoDeveAvaliarLeiloesSemNenhumLanceDado()
        {
            //try
            //{
            Leilao leilao = new CriadorDeLeilao()
                            .Para("Playstation 4")
                            .Constroi();

            leiloeiro.Avalia(leilao);
            //}
            //catch (Exception e)
            //{
            //    //ok
            //}
        }
Exemplo n.º 11
0
        public void LancesEmOrdemDecrescente()
        {
            Usuario major  = new Usuario("Major");
            Leilao  leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                             .Lance(joao, 400.0)
                             .Lance(maria, 300.0)
                             .Lance(jose, 200.0)
                             .Lance(major, 100.0)
                             .Constroi();

            leiloeiro.Avalia(leilao);

            Assert.AreEqual(400, leiloeiro.MaiorLance, 0.00001);
            Assert.AreEqual(100, leiloeiro.MenorLance, 0.00001);
        }
Exemplo n.º 12
0
        // cenario 2: 3 lances em ordem crescente
        public void DeveEntenderLeilaoComApenasUmLance()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 4 Novo")
                            .Lance(joao, 5000.0)
                            .Constroi();


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

            // comparando a saida com o esperado
            Assert.AreEqual(5000.0, leiloeiro.MaiorLance, 0.00001);
            Assert.AreEqual(5000.0, leiloeiro.MenorLance, 0.00001);
        }
Exemplo n.º 13
0
        public void DeveAcertarOValorMedioDosLances()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                            .Lance(maria, 250.0)
                            .Lance(joao, 300.0)
                            .Lance(maria, 400.0)
                            .Constroi();

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

            double valorMedioEsperado = 316.666666666;

            Assert.AreEqual(valorMedioEsperado, leiloeiro.ValorMedioLance, 0.0001);
        }
Exemplo n.º 14
0
        public void Teste2LancesEObtem3Maiores()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                            .Lance(joao, 400.0)
                            .Lance(maria, 300.0)
                            .Constroi();

            leiloeiro.Avalia(leilao);

            IList <Lance> maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(2, maiores.Count);
            Assert.AreEqual(400, maiores[0].Valor, 0.00001);
            Assert.AreEqual(300, maiores[1].Valor, 0.00001);
            //Assert.AreEqual(0, maiores[2].Valor, 0.00001);
        }
Exemplo n.º 15
0
        public void LancesForaDeOrdem()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                            .Lance(joao, 200.0)
                            .Lance(maria, 450.0)
                            .Lance(jose, 120.0)
                            .Lance(maria, 700.0)
                            .Lance(joao, 630.0)
                            .Lance(jose, 230.0)
                            .Constroi();

            leiloeiro.Avalia(leilao);

            Assert.AreEqual(700, leiloeiro.MaiorLance, 0.00001);
            Assert.AreEqual(120, leiloeiro.MenorLance, 0.00001);
        }
Exemplo n.º 16
0
        public void LeilaoComApenas1Lance()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                            .Lance(joao, 100.0)
                            .Constroi();

            leiloeiro.Avalia(leilao);

            IList <Lance> maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(1, maiores.Count);
            Assert.AreEqual(100, maiores[0].Valor, 0.00001);

            Assert.AreEqual(100, leiloeiro.Media, 0.00001);
            Assert.AreEqual(100, leiloeiro.MaiorLance, 0.00001);
            Assert.AreEqual(100, leiloeiro.MenorLance, 0.00001);
        }
Exemplo n.º 17
0
        public void DeveDevolverMediaDosLances()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                            .Lance(maria, 250.0)
                            .Lance(joao, 300.0)
                            .Lance(jose, 400.0)
                            .Constroi();

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

            // comparando a saida com o esperado
            double mediaEsperado = 316.666667;

            Assert.AreEqual(mediaEsperado, leiloeiro.ValorMedioLance(leilao), 0.0001);
            Assert.AreEqual(mediaEsperado, leiloeiro.Media, 0.0001);
        }
Exemplo n.º 18
0
        public void DeveEncontrarOsTresMaioresLances()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation")
                            .Lance(joao, 100)
                            .Lance(maria, 200)
                            .Lance(joao, 300)
                            .Lance(maria, 400)
                            .Constroi();

            leiloeiro.Avalia(leilao);

            var maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(3, maiores.Count);
            Assert.AreEqual(400, maiores[0].Valor, 0.0001);
            Assert.AreEqual(300, maiores[1].Valor, 0.0001);
            Assert.AreEqual(200, maiores[2].Valor, 0.0001);
        }
Exemplo n.º 19
0
        public void DeveEntenderLancesEmOrdemCrescente()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                            .Lance(joao, 100.0)
                            .Lance(maria, 200.0)
                            .Lance(joao, 300.0)
                            .Lance(maria, 400.0)
                            .Constroi();

            // executando a acao
            leiloeiro.Avalia(leilao);
            // comparando a saida com o esperado
            double maiorEsperado = 400;
            double menorEsperado = 100;

            Assert.AreEqual(maiorEsperado, leiloeiro.MaiorLance);
            Assert.AreEqual(menorEsperado, leiloeiro.MenorLance, 0.0001);
        }
Exemplo n.º 20
0
        public void Teste5LancesEObtem3Maiores()
        {
            Usuario major  = new Usuario("Major");
            Leilao  leilao = new CriadorDeLeilao().Para("Playstation 3 Novo")
                             .Lance(joao, 400.0)
                             .Lance(maria, 300.0)
                             .Lance(jose, 200.0)
                             .Lance(major, 100.0)
                             .Lance(jose, 500.0)
                             .Constroi();

            leiloeiro.Avalia(leilao);

            IList <Lance> maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(3, maiores.Count);
            Assert.AreEqual(500, maiores[0].Valor, 0.00001);
            Assert.AreEqual(400, maiores[1].Valor, 0.00001);
            Assert.AreEqual(300, maiores[2].Valor, 0.00001);
        }
Exemplo n.º 21
0
        public void NaoDeveAceitarMaisDoQue5LancesDeUmMesmoUsuario()
        {
            Leilao leilao = new CriadorDeLeilao().Para("Macbook Pro 15")
                            .Lance(steveJobs, 2000)
                            .Lance(billGates, 3000)
                            .Lance(steveJobs, 4000)
                            .Lance(billGates, 5000)
                            .Lance(steveJobs, 6000)
                            .Lance(billGates, 7000)
                            .Lance(steveJobs, 8000)
                            .Lance(billGates, 9000)
                            .Lance(steveJobs, 10000)
                            .Lance(billGates, 11000)
                            .Lance(steveJobs, 12000)
                            .Constroi();

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

            Assert.AreEqual(11000, ultimoLance.Valor, 0.00001);
        }
        public void DeveLancarArgumentExceptionCasoLanceComValorMenorQue0()
        {
            var leilao = new CriadorDeLeilao().Para("Geladeira").Constroi();

            Assert.Throws <ArgumentException>(() => leilao.Propoe(new Lance(new Usuario("Joao"), -100)));
        }