예제 #1
0
        public void RenornaValorSuperiorMaisProximoDadoEsteCenario(
            double valorDestino,
            double valorEsperado,
            double[] ofertas)
        {
            //Arrange
            IModalidadeAvaliacao modalidade =
                new OfertaSuperiorMaisProxima(valorDestino);
            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]);
                }
            }

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

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

            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #2
0
        public void RetornaMaiorValorAproximado(double valorDestino, double valorEsperado, double[] ofertas)
        {
            // Arrange - cenário
            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 (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 - verificação com as espectativas
            var valorObtido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
        public void RetornaValorMaisProximo(double valorDestino, double valorEsperado, double[] ofertas)
        {
            //Arranje - cenário
            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 (int i = 0; i < ofertas.Length; i++)
            {
                var valor     = ofertas[i];
                var ofertante = i % 2 == 0 ? fulano : maria;
                leilao.RecebeLance(ofertante, valor);
            }

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

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

            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #4
0
        public void ModalidadeOfertaMaisProximaValor(double valorItem, double valorEsperado, double[] lances)
        {
            //Assert
            var modalidade = new OfertaSuperiorMaisProxima(valorItem);
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("fulano", leilao);
            var beltrano   = new Interessada("beltrano", leilao);

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

            //Act
            leilao.TerminaPregao();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(double valorDestino, double valorEsperado, double[] ofertas)
        {
            // Arrange - Given
            // Dado o leilão iniciado coma  modalidade de avaliação "valor superior mais próximo", valor de destino 1200 e lances de 800, 1150, 1400 e 1250
            IModalidadeAvaliacao modalidade = new OfertaSuperiorMaisProxima(valorDestino);

            var leilao = new Leilao("Van Gogh", modalidade);
            var fulano = new Cliente("Fulano", leilao);
            var maria  = new Cliente("Maria", leilao);

            leilao.IniciarPregao();

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

            // Act - Then
            // Quando o pregão termina
            leilao.TerminarPregao();

            // Assert - When
            // Então o ganhador será quem fez a oferta 1250
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
예제 #6
0
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(double valorDestino, double valorEsperado, double[] ofertas)
        {
            var modalidade = new OfertaSuperiorMaisProxima(valorDestino);
            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);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }
            //Act
            leilao.TerminaPregao();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
예제 #7
0
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(
            double valorDestino,
            double valorEsperado,
            double[] ofertas
            )
        {
            //Given
            IModalidadeAvaliacao modalidade = new OfertaSuperiorMaisProxima(valorDestino);

            var leilao  = new Leilao("Van Gogh", modalidade);
            var fulano  = new Interessada("Fulano", leilao);
            var ciclano = new Interessada("Ciclano", leilao);

            leilao.IniciaPregao();

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

            leilao.TerminaPregao();

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

            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #8
0
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(
            double valorDestino,
            double valorEsperado,
            double[] ofertas)
        {
            //Arrange
            var modalidade = new OfertaSuperiorMaisProxima(valorDestino);
            var leilao     = new Leilao("Cama Box com Colchão", modalidade);

            leilao.Iniciar();

            var marina = new Interessado("Marina", leilao);
            var maria  = new Interessado("Maria", leilao);

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

            //Act
            leilao.Finalizar();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
예제 #9
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);
        }
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(double valorDestino, double valorEsperado, double[] ofertas)
        {
            // Arranje - Cenário
            IModalidadeAvaliacao modalidade = new OfertaSuperiorMaisProxima(valorDestino);


            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);
                }
            }
            // Act - método sob teste
            leilao.TerminaPregao();

            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
예제 #11
0
        private void RetornaSuperiorMaiorMaisProximo(double valorDestino, double valorEsperado, double[] ofertas)
        {
            IModalidadeAvaliacao modalidade = new OfertaSuperiorMaisProxima(valorDestino);
            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);
        }
        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);
        }
예제 #13
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);
        }
예제 #14
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);
        }
예제 #15
0
        public void Terminar_Retorna_ValorSuperiorMaisProximo_DadoLeilaoNessaModalidade()
        {
            // Arrange
            var modalidade = new OfertaSuperiorMaisProxima(150);
            var leilao     = new Leilao("Pintura do Van Gogh", modalidade);
            var licitante  = new Licitante("Licitante Um", leilao);
            var licitante2 = new Licitante("Licitante Dois", leilao);

            leilao.Iniciar();

            // Act
            leilao.ReceberLance(licitante, 100);
            leilao.ReceberLance(licitante2, 200);
            leilao.ReceberLance(licitante, 5000);
            leilao.Terminar();

            // Assert
            const double valorEsperado = 200;
            var          valorRecebido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorRecebido);
        }
예제 #16
0
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(
            double valorDestino,
            double valorEsperado,
            double[] ofertas)
        {
            //Arranje - Cenário.
            //Dado leilao com lances sem ordemd e valor
            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 (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);
        }
예제 #17
0
        public void RetornaValorMaisProximoDoValorEstimadoDadoModalidade(
            double valorDestino,
            double valorEsperado,
            double[] ofertas)
        {
            // valorDestino - é o valor esperado para aquele leilão
            // o lance vencedor é o primeiro valor superior ao valor destino
            // no caso é 1250 e não 1400

            OfertaSuperiorMaisProxima modalidade = new OfertaSuperiorMaisProxima(1200);

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

            leilao.IniciaPregao();

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

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

            leilao.TerminaPregao();

            // Act - método sob teste
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }