예제 #1
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(double valorEsperado, double[] lances)
        {
            //Arrange
            IModalidadeLeilao modalidadeLeilao = new ModalidadeOfertaMaiorValor();
            var leilao = new Leilao("peça leiloada", modalidadeLeilao);

            var clienteInteressado1 = new Interessada("cliente 1", leilao);
            var clienteInteressado2 = new Interessada("cliente 2", leilao);

            leilao.IniciarPregao();

            for (int i = 0; i < lances.Length; i++)
            {
                if (i % 2 == 0)
                {
                    leilao.ReceberLance(clienteInteressado1, lances[i]);
                }
                else
                {
                    leilao.ReceberLance(clienteInteressado2, lances[i]);
                }
            }

            //Act
            leilao.TerminarPregao();

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

            Assert.Equal(valorEsperado, resultado);
        }
예제 #2
0
        public void RetornarValorSuperiorMaisProximoDadoLeilaoNessaModalidade(double valorDestino, double valorEsperado, double[] lances)
        {
            //Arrange
            IModalidadeLeilao modalidadeLeilao = new ModalidadeOfertaSuperiorMaisProxima(valorDestino);

            var leilao = new Leilao("peca leiloada", modalidadeLeilao);

            var clienteInteressado1 = new Interessada("cliente interessado 1", leilao);
            var clienteInteressado2 = new Interessada("cliente interessado 2", leilao);

            leilao.IniciarPregao();

            for (int i = 0; i < lances.Length; i++)
            {
                if (i % 2 == 0)
                {
                    leilao.ReceberLance(clienteInteressado1, lances[i]);
                }
                else
                {
                    leilao.ReceberLance(clienteInteressado2, lances[i]);
                }
            }

            //Act
            leilao.TerminarPregao();

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

            Assert.Equal(valorEsperado, resultado);
        }
        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);
        }
예제 #4
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLanceE3Clientes(double valorEsperado)
        {
            //Arrange
            IModalidadeLeilao modalidadeLeilao = new ModalidadeOfertaMaiorValor();
            var leilao = new Leilao("peça leiloada", modalidadeLeilao);

            var clienteInteressado1 = new Interessada("cliente interessado 1", leilao);
            var clienteInteressado2 = new Interessada("cliente interessado 2", leilao);
            var clienteInteressado3 = new Interessada("cliente interessado 3", leilao);

            leilao.IniciarPregao();

            leilao.ReceberLance(clienteInteressado3, 1400);
            leilao.ReceberLance(clienteInteressado1, 100);
            leilao.ReceberLance(clienteInteressado2, 200);
            leilao.ReceberLance(clienteInteressado1, 1000);
            leilao.ReceberLance(clienteInteressado2, 950);

            //Act
            leilao.TerminarPregao();

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

            Assert.Equal(valorEsperado, resultado);
            Assert.Equal(clienteInteressado3, leilao.Ganhador.Cliente);
        }
        public void RetornarMaiorValorDadoLeilaoComPeloMenosUmLance(double valorEsperado, double[] ofertas)
        {
            // Arrange - Given
            // Dado o leilão com lances sem ordem de valor
            var modalidade = new MaiorValor();
            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++)
            {
                var valor = ofertas[i];
                if (i % 2 == 0)
                {
                    leilao.ReceberLance(fulano, valor);
                }
                else
                {
                    leilao.ReceberLance(maria, valor);
                }
            }

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

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

            Assert.Equal(valorEsperado, valorObtido);
        }
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int quantidadeEsperada, double[] ofertas)
        {
            // Arrange - Given
            // Dado leilão finalizado com x lances
            var modalidade = new MaiorValor();
            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++)
            {
                var valor = ofertas[i];
                if (i % 2 == 0)
                {
                    leilao.ReceberLance(fulano, valor);
                }
                else
                {
                    leilao.ReceberLance(maria, valor);
                }
            }

            leilao.TerminarPregao();

            // Act - Then
            // Quando o leilão receber nova oferta de lance
            leilao.ReceberLance(fulano, 1000);

            // Assert - When
            // Então a quantidade de lances continua sendo x
            var quantidadeObtida = leilao.Lances.Count();
            Assert.Equal(quantidadeEsperada, quantidadeObtida);
        }
예제 #7
0
        private void RetornaZeroDadoUmLeilaoSemLance()
        {
            // Arrange (Preparação das variáveis necessárias)
            Leilao leilao = new Leilao("I Leilão Bothers Plus", 0, new Bem("Van Gogh", "Arte"));

            leilao.IniciarPregao(); 
            
            // Act (Efetivamente a função que desejo testar)
            leilao.TerminarPregao();

            // Assert (Confirmação dos dados)
            var valorObtido = leilao.Vencedor.Valor;
            Assert.Equal(0, valorObtido);
        }
예제 #8
0
        public void RetornaZeroDadoLeilaoSemLances()
        {
            //Arrange
            IModalidadeLeilao modalidadeLeilao = new ModalidadeOfertaMaiorValor();
            var leilao = new Leilao("peça leiloada", modalidadeLeilao);

            leilao.IniciarPregao();

            //Act
            leilao.TerminarPregao();

            //Assert
            var esperado  = 0;
            var resultado = leilao.Ganhador.Valor;

            Assert.Equal(esperado, resultado);
        }
예제 #9
0
        private void RetornaValorSuperiorMaisProx(double valorEsperado, double valorBase, double[] ofertas)
        {
            // Arrange (Preparação das variáveis necessárias)
            Leilao leilao = new Leilao("I Leilão Bothers Plus", valorBase, new Bem("Van Gogh", "Arte"));
            Cliente samuel = new Cliente("Samuel Camilo", leilao);

            leilao.IniciarPregao();

            foreach(var oferta in ofertas)
                leilao.RecebeLance(samuel, oferta);

            // Act (Efetivamente a função que desejo testar)
            leilao.TerminarPregao();

            // Assert (Confirmação dos dados)
            var valorObtido = leilao.Vencedor.Valor;
            Assert.Equal(valorEsperado, valorObtido);
        }
예제 #10
0
        public void NaoAceitaProximoLanceDadoSejaDoMesmoInteressado()
        {
            //Arrange
            IModalidadeLeilao modalidadeLeilao = new ModalidadeOfertaMaiorValor();
            var leilao      = new Leilao("peça leiloada", modalidadeLeilao);
            var interessado = new Interessada("pessoa interessada 1", leilao);

            leilao.IniciarPregao();

            leilao.ReceberLance(interessado, 100);

            //Act
            leilao.ReceberLance(interessado, 100);

            //Assert
            var esperado  = 1;
            var resultado = leilao.Lances.Count();

            Assert.Equal(esperado, resultado);
        }
        public void RetornarZeroDadoLeilaoSemLances()
        {
            // Arrange - Given
            // Dado o leilão sem nenhum lance
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

            leilao.IniciarPregao();

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

            // Assert - When
            // Então o valor do lance ganhador é zero
            var valorEsperado = 0;
            var valorObtido   = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
        public void NaoAceitarProximoLanceDadoQueMesmoClienteRealizouUltimoLance()
        {
            // Arrange - Given
            // Dado o lielão iniciado e cliente x realizou o último lance
            var modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);
            var fulano = new Cliente("Fulano", leilao);

            leilao.IniciarPregao();
            leilao.ReceberLance(fulano, 800);

            // Act - Then
            // Quando o mesmo cliente x realiza o próximo lance
            leilao.ReceberLance(fulano, 1000);

            // Assert - When
            // Então o leilão não aceita o segundo lance
            var quantidadeEsperada = 1;
            var quantidadeObtida = leilao.Lances.Count();
            Assert.Equal(quantidadeEsperada, quantidadeObtida);
        }
예제 #13
0
        private void NaoPermiteNovosLancesDadoLeilaoFinalizado()
        {
            // Arrange (Preparação das variáveis necessárias)
            Leilao  leilao = new Leilao("I Leilão Bothers Plus", 0, new Bem("Van Gogh", "Arte"));
            Cliente samuel = new Cliente("Samuel", leilao);

            leilao.IniciarPregao();

            leilao.RecebeLance(samuel, 100);
            leilao.RecebeLance(samuel, 1000);
            leilao.RecebeLance(samuel, 75);
            leilao.RecebeLance(samuel, 30);
            // Act (Efetivamente a função que desejo testar)
            leilao.TerminarPregao();

            leilao.RecebeLance(samuel, 75);
            leilao.RecebeLance(samuel, 30);

            // Assert (Confirmação dos dados)
            var valorObtido = leilao.Lances.Count();

            Assert.Equal(4, valorObtido);
        }
예제 #14
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado()
        {
            //Arrange
            IModalidadeLeilao modalidadeLeilao = new ModalidadeOfertaMaiorValor();
            var leilao = new Leilao("peça leiloada", modalidadeLeilao);

            var clienteInteressado1 = new Interessada("pessoa interessada 1", leilao);
            var clienteInteressado2 = new Interessada("pessoa interessada 2", leilao);

            leilao.IniciarPregao();

            leilao.ReceberLance(clienteInteressado1, 100);
            leilao.ReceberLance(clienteInteressado2, 200);

            leilao.TerminarPregao();

            //Act
            leilao.ReceberLance(clienteInteressado1, 300);

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

            Assert.Equal(2, valorObtido);
        }