public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int qtdeEsperada, double[] ofertas)
        {
            // Arranje - Cenário
            // Dado leilão apenas com 1 lance
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Bleach", modalidade);
            var pessoa1    = new Interessada("Zaraki", leilao);
            var pessoa2    = new Interessada("Kurosaki", leilao);

            leilao.IniciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(pessoa1, valor);
                }
                else
                {
                    leilao.RecebeLance(pessoa2, valor);
                }
            }

            leilao.TerminaPregao();

            // Act - método sob teste
            // Quando o leilão acabar
            leilao.RecebeLance(pessoa1, 1000);

            //Assert
            // Então o valor esperado é o maior valor
            var qtdeObtida = leilao.Lances.Count();

            Assert.Equal(qtdeEsperada, qtdeObtida);
        }
예제 #2
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(double valorEsperado, double[] ofertas)
        {
            //Arranje - Cenário.
            //Dado leilao com lances sem ordemd e valor
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("Fulano", leilao);
            var maria      = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];

                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            //Act - método sobre teste.
            //Quando o pregão/leilão termina
            leilao.TerminaPregao();

            //Assert.
            //Então o valor esperado é o maior valor
            var valorObtido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #3
0
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(
            double valorDestino, double valorEsperado, double[] ofertas)
        {
            // Arrange
            IModalidadeAvaliacao modalidade = new OfertaSuperiorMaisProxima(valorDestino);
            var leilao = new Leilao("Van Gogh", modalidade);
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (var i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];

                if (i % 2 == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            // Act
            leilao.TerminaPregao();

            // Assert
            var valorObtido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #4
0
        public void RetornaMaiorValorDadoLeilaoComLances1(double esperado, List <double> valores)
        {
            //Arrange
            var leilao = new Leilao("Van gogh");
            var joao   = new Interessada("Joao", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < valores.Count; i++)
            {
                var valor = valores[i];
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(joao, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            //Act
            leilao.TerminaPregao();

            var obtido = leilao.Ganhador.Valor;

            //Assert
            Assert.Equal(esperado, obtido);
        }
예제 #5
0
        private void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(double valorEsperado, double[] ofertas)
        {
            IModalidadeAvaliacao modalidade = new MaiorOferta();
            var leilao  = new Leilao("Van Gogh", modalidade);
            var pessoa1 = new Interessada("Fulano", leilao);
            var pessoa2 = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];

                if (i % 2 == 0)
                {
                    leilao.RecebeLance(pessoa1, valor);
                }
                else
                {
                    leilao.RecebeLance(pessoa2, valor);
                }
            }

            leilao.TerminaPregao();

            var valorObtido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #6
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(
            int quantidadeLaces,
            double[] ofertas)
        {
            //Arrange
            IModalidadeAvaliacao modalidade
                = new MaiorValor();
            var leilao = new Leilao("Van gogh", modalidade);
            var jose   = new Interessada("Jose", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(jose, ofertas[i]);
                }
                else
                {
                    leilao.RecebeLance(maria, ofertas[i]);
                }
            }
            leilao.TerminaPregao();

            //Act - método sob teste
            leilao.RecebeLance(jose, 1500);

            //Assert
            var valorObtido = leilao.Lances.Count();

            Assert.Equal(quantidadeLaces, valorObtido);
        }
예제 #7
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int qtd, double[] ofertas)
        {
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Estatua de Zeus", modalidade);
            var fulano     = new Interessada("Fulano", leilao);
            var maria      = new Interessada("Maria", leilao);

            leilao.IniciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                leilao.RecebeLance(maria, valor);
            }
            //foreach (var valor in ofertas)
            //{
            //    leilao.RecebeLance(fulano, valor);
            //}

            leilao.TerminaPregao();

            //Act metodo sob test
            leilao.RecebeLance(fulano, 1000);
            //Assert
            var quantidadeObtida = leilao.Lances.Count();

            Assert.Equal(qtd, quantidadeObtida);
        }
예제 #8
0
        private static void LeilaoComVariosLances()
        {
            /// Padrão ArrangeActAssert
            /// http://wiki.c2.com/?ArrangeActAssert
            ///

            // Arranje - Configura Cenário
            var leilao = new Leilao("Van Gogh");
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.RecebeLance(fulano, 800);
            leilao.RecebeLance(maria, 900);
            leilao.RecebeLance(fulano, 1000);
            leilao.RecebeLance(maria, 990);

            //Act - Método sob teste
            leilao.TerminaPregao();

            //Assert
            var valorEsperado = 1000;
            var valorObtido   = leilao.Ganhador.Valor;

            Verifica(valorEsperado, valorObtido);
        }
예제 #9
0
        private static void LeilaoComVariosLances()
        {
            //Arranje - cenário
            IModalidadeAvaliacao modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.RecebeLance(fulano, 800);
            leilao.RecebeLance(maria, 900);
            leilao.RecebeLance(fulano, 1000);

            leilao.RecebeLance(maria, 990);

            //Act - método sob teste
            leilao.TerminaPregao();

            //Assert (esta falho, pois precisa de humano ver e verificar se está ok os dados)

            /*Console.WriteLine($"Leilão finalizado, Ganhador: " +
             *  $"{leilao.Ganhador.Cliente.Nome} " +
             *  $" Valor: { leilao.Ganhador.Valor}");*/

            //Assert
            var valorEsperado = 1000;
            var valorObtido   = leilao.Ganhador.Valor;

            Verifica(valorEsperado, valorObtido);
        }
예제 #10
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int qtdEsperada, double[] ofertas)
        {
            MaiorValor modalidade = new MaiorValor();

            // Arranje - cenário
            var leilao = new Leilao("Bicicleta", modalidade);

            leilao.IniciaPregao();

            var interassado1 = new Interessada("Leandro", leilao);
            var interassado2 = new Interessada("Priscila", leilao);

            foreach (var oferta in ofertas)
            {
                leilao.RecebeLance(interassado1, oferta);
            }

            leilao.TerminaPregao();

            // Act - método sob teste
            leilao.RecebeLance(interassado2, 532);
            var quantidadeDeLancesEsperado = qtdEsperada;

            Assert.Equal(leilao.Lances.Count(), quantidadeDeLancesEsperado);
            Assert.Equal(100, leilao.Lances.First().Valor);
        }
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int valorEsperada, double[] ofertas)
        {
            //arranjo - cenario
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Vanh Gogh", modalidade);
            var fulano     = new Interessada("Fulano", leilao);
            var maria      = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Length; i++)
            {
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(fulano, ofertas[i]);
                }
                else
                {
                    leilao.RecebeLance(maria, ofertas[i]);
                }
            }

            leilao.TerminaPregao();

            //act -  execução sob teste
            leilao.RecebeLance(fulano, 1100);

            //assert
            Assert.Equal(valorEsperada, leilao.Lances.Count());
        }
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(
            int qtdeEsperada, double[] ofertas)
        {
            //Arranje - cenário
            var leilao = new Leilao("Van Gogh"); //modalidade padrão maiorValor()
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Count(); i++)
            {
                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(fulano, ofertas[i]);
                }
                else
                {
                    leilao.RecebeLance(maria, ofertas[i]);
                }
            }

            leilao.TerminaPregao();

            //Act - método sob teste
            leilao.RecebeLance(fulano, 1000);

            //Assert
            var qtdeObtida = leilao.Lances.Count();

            Assert.Equal(qtdeEsperada, qtdeObtida);
        }
예제 #13
0
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(double valorDestino, double valorEsperado, double[] ofertas)
        {
            //Arranje - cenário de entrada
            IModalidadeAvaliacao modalidade = new OfertaSuperiorMaisProxima(valorDestino);
            var leilao = new Leilao("Van Gogh", modalidade);
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.InciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }
            //act - método sob teste
            leilao.TerminaPregao();
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
예제 #14
0
        private void NaoPermiteNovosLancesDadoLeilaoFinalizado(int qtdeEsperada, double[] ofertas)
        {
            var modalidade = new MaiorOferta();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var pessoa1    = new Interessada("Fulano", leilao);
            var pessoa2    = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];

                if (i % 2 == 0)
                {
                    leilao.RecebeLance(pessoa1, valor);
                }
                else
                {
                    leilao.RecebeLance(pessoa2, valor);
                }
            }

            leilao.TerminaPregao();

            var qtdeObtida = leilao.Lances.Count();

            Assert.Equal(qtdeObtida, qtdeEsperada);
        }
        public void RetornaValorSuperiorMaisProximoDestino(double valorDestino, double valorEsperado, double[] ofertas)
        {
            //Arranje - cenário
            //Valor aguardado seria 1250 quando valor destino de 1200
            var modalidade = new OfertaSuperiorMaisProxima(valorDestino);
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("Fulano", leilao);
            var maria      = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Count(); i++)
            {
                if ((i % 2) == 0) //garante input de clientes alternados
                {
                    leilao.RecebeLance(fulano, ofertas[i]);
                }
                else
                {
                    leilao.RecebeLance(maria, ofertas[i]);
                }
            }

            //Act - método sob teste
            leilao.TerminaPregao();

            //Assert
            var valorObtido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
        public void NaoPermiteNovosLancesDadosLeilaoFinalizado(
            double valorEsperado, double[] lances)
        {
            //Arranje - cenário
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("Fulano", leilao);
            var maria      = new Interessada("Maria", leilao);

            var i = 0;

            leilao.IniciaPregao();

            for (; i < valorEsperado; i++)
            {
                var ofertante = i % 2 == 0 ? fulano : maria;
                leilao.RecebeLance(ofertante, lances[i]);
            }

            leilao.TerminaPregao();

            //Act - método sob teste

            for (; i < lances.Length; i++)
            {
                var ofertante = i % 2 == 0 ? fulano : maria;
                leilao.RecebeLance(ofertante, lances[i]);
            }

            //Assert - resultado
            var numeroDeLances = leilao.Lances.Count();

            Assert.Equal(valorEsperado, numeroDeLances);
        }
예제 #17
0
        public void ClienteNaoPodeRealizarDoisLancesSeguidos(
            int quantidadeLaces,
            double[] ofertas)
        {
            //Arrange
            IModalidadeAvaliacao modalidade
                = new MaiorValor();
            var leilao = new Leilao("Van gogh", modalidade);
            var maria  = new Interessada("Maria", leilao);
            var jose   = new Interessada("Jose", leilao);

            leilao.IniciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(jose, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }
            leilao.TerminaPregao();

            //Act - método sob teste
            leilao.RecebeLance(jose, 1500);

            //Assert
            var valorObtido = leilao.Lances.Count();

            Assert.Equal(quantidadeLaces, valorObtido);
        }
        public void RetornaMaiorValorDadoleilaoComPeloMenosUmLance(double[] ofertas)
        {
            var leilao = new Leilao("Van Gogh");
            var fulano = new Interessada("fulano", leilao);
            var maria  = new Interessada("maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];

                if ((i % 2 == 0))
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            leilao.TerminaPregao();

            var qtdeEsperada = 4;
            var qtdeObtida   = leilao.Lances.Count();

            Assert.Equal(qtdeEsperada, qtdeObtida);
        }
        [InlineData(new double[] { 800, 900, 990, 1000 }, 1000)] //Cenario 3 - leilao com varios lances, ordenados por valor
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(double [] lances, double valorEsperado)
        {
            //Arranje - cenário
            IModalidadeAvaliacao modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);

            leilao.IniciaPregao();
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            for (int i = 0; i < lances.Length; i++)
            {
                var valor = lances[i];

                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            //Act - método sob teste
            leilao.TerminaPregao();

            //Assert - valor esperado
            var valorObtido = leilao.Ganhador.Valor;//como não utizamos a pessoa no teste não passado

            Assert.Equal(valorEsperado, valorObtido);
        }
        public void RetornaOValorMaiorEMaisProximoDoDesejado(double valorDesejado,
                                                             double valorEsperado,
                                                             double[] lances)
        {
            //Arranje
            var leilao   = new Leilao("Van Gogh", new MaiorLanceProximoDoValorDesejado(valorDesejado));
            var fulano   = new Interessada("Fulano", leilao);
            var beltrano = new Interessada("Beltrano", leilao);

            leilao.IniciaPregao();

            for (var i = 0; i < lances.Length; i++)
            {
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(fulano, lances[i]);
                    continue;
                }

                leilao.RecebeLance(beltrano, lances[i]);
            }


            //Act
            leilao.TerminaPregao();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
예제 #21
0
        private static void LeilaoComVariosLances()
        {
            //Arranje - definindo cenário
            var leilao = new Leilao("Van Gogh");
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.RecebeLance(fulano, 800);
            leilao.RecebeLance(maria, 900);
            leilao.RecebeLance(fulano, 1000);
            leilao.RecebeLance(maria, 990);

            //Act - método sob test
            leilao.TerminaPregao();

            //Assert
            var valorEsperado = 1000;
            var valorObtido   = leilao.Ganhador.Valor;


            if (valorEsperado == valorObtido)
            {
                Console.WriteLine("TESTE OK");
            }
            else
            {
                Console.WriteLine("TESTE FALHOU");
            }
        }
예제 #22
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(double valorEsperado, double[] ofertas)
        {
            //Arrange
            IModalidadeAvaliacao modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);
            var jose   = new Interessada("José", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(jose, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            //Action
            leilao.TerminaPregao();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
예제 #23
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int quantidadeEsperada, double [] ofertas)
        {
            //Dado leilão finalizado com X lances
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("Fulano", leilao);
            var maria      = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            leilao.TerminaPregao();

            //Quando leilão recebe nova oferta de lance
            leilao.RecebeLance(fulano, 1000);

            //Então a quantidade de lances continua sendo X
            var quantidadeObtida = leilao.Lances.Count();

            Assert.Equal(quantidadeEsperada, quantidadeObtida);
        }
예제 #24
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int quantidadeEsperada, double[] ofertas)
        {
            //Arrange
            IModalidadeAvaliacao modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);
            var jose   = new Interessada("José", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(jose, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }
            leilao.TerminaPregao();

            //Action
            leilao.RecebeLance(jose, 1000);

            //Assert
            Assert.Equal(quantidadeEsperada, leilao.Lances.Count());
        }
예제 #25
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int qtdEsperada, double[] ofertas)
        {
            //Arrange - cenários
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("Fulano", leilao);
            var maria      = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            leilao.TerminaPregao();

            //Act - método sob teste
            leilao.RecebeLance(fulano, 1000);

            //Assert
            var qtdObtida = leilao.Lances.Count();

            Assert.Equal(qtdEsperada, qtdObtida);
        }
예제 #26
0
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(
            double valorDestino, double valorEsperado, double[] ofertas)
        {
            //arrange
            IModalidadeAvaliacao modalidade = new OfertaSuperiorMaisProxima(valorDestino);
            var leilao = new Leilao("Van", modalidade);
            var fulano = new Interessada("fulano", leilao);
            var maria  = new Interessada("fulano", leilao);

            for (int i = 0; i < ofertas.Length; i++)
            {
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(fulano, ofertas[1]);
                }
                else
                {
                    leilao.RecebeLance(maria, ofertas[i]);
                }
            }

            //act
            leilao.TerminaPregao();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
예제 #27
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int qtdeEsperada, double[] ofertas)
        {
            IModalidadeAvaliacao modalidade = new MaiorLance();
            var leilao = new Leilao("Van Gogh", modalidade);
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];
                if ((i % 2) == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            leilao.TerminaPregao();

            leilao.RecebeLance(fulano, 1000);

            var qtdeObtida = leilao.Lances.Count();

            Assert.Equal(qtdeEsperada, qtdeObtida);
        }
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(
            double valorEsperado,
            double[] ofertas)
        {
            //Arranje - cenário
            var leilao = new Leilao("Van Gogh");    //modalidade padrão maiorValor()
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (int i = 0; i < ofertas.Count(); i++)
            {
                if ((i % 2) == 0) //garante não input de usuarios consecutivos
                {
                    leilao.RecebeLance(fulano, ofertas[i]);
                }
                else
                {
                    leilao.RecebeLance(maria, ofertas[i]);
                }
            }

            //Act - método sob teste
            leilao.TerminaPregao();

            //Assert
            var valorObtido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #29
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(
            double valorEsperado, double[] ofertas)
        {
            // Arrange - cenário
            IModalidadeAvaliacao modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);
            var fulano = new Interessada("Fulano", leilao);
            var maria  = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            for (var i = 0; i < ofertas.Length; i++)
            {
                var valor = ofertas[i];

                if (i % 2 == 0)
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            // Act - método sob teste
            leilao.TerminaPregao();

            // Assert
            var valorObtido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #30
0
        public void RetornaValorDadoLeilaoComPeloMenosUmLance(double valor, double[] ofertas)
        {
            // give when then
            // Arrange Act Assert
            // Arranje - cenário de entrada
            // Dado(give) leilão com 2 clientes sendo que fulado deu dois Lances, um de 800 e outro de 1000
            // e maria deu um lance 900

            MaiorValor modalidade = new MaiorValor();
            var        leilao     = new Leilao("Jogos", modalidade);
            var        fulano     = new Interessada("Fulano", leilao);
            var        maria      = new Interessada("Maria", leilao);

            leilao.IniciaPregao();

            foreach (var oferta in ofertas)
            {
                leilao.RecebeLance(fulano, oferta);
            }

            // Act - método sob teste
            // Quando o leilão/pregão termina
            leilao.TerminaPregao();

            // Assert
            // Então o valor esperado é o maior valor, no caso é 100
            var valorEsperado = valor;
            var valorObtido   = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }