public void TerminaPregao_RetornaMaiorValor_QuandoLeilaoComPeloMenosUmLance(double valorEsperado, double[] lances) { // Arrange var modalidade = new MaiorValor(); var leilao = new Leilao("Pintura do Van Gogh", modalidade); var licitante1 = new Licitante("Licitante Um", leilao); var licitante2 = new Licitante("Licitante Dois", leilao); leilao.Iniciar(); for (var i = 0; i < lances.Length; i++) { if (i % 2 == 0) { leilao.ReceberLance(licitante1, lances[i]); continue; } leilao.ReceberLance(licitante2, lances[i]); } leilao.Terminar(); // Assert var valorRecebido = leilao.Ganhador.Valor; Assert.Equal(valorEsperado, valorRecebido); }
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); }
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 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); }
public void QuantidadeDeLancesPermaneceZeroDadoQuePregaoNaoFoiIniciado(double[] lances) { //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); //Act for (int i = 0; i < lances.Length; i++) { var valor = lances[i]; if (i % 2 == 0) { leilao.ReceberLance(clienteInteressado1, valor); } leilao.ReceberLance(clienteInteressado2, valor); } //Assert Assert.Empty(leilao.Lances); }
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); }
public void ReceberLance_NaoPermiteNovoLance_QuandoOLicitanteTentaDarLancesConsecutivos() { // Arrange var modalidade = new MaiorValor(); var leilao = new Leilao("Pintura do Van Gogh", modalidade); var licitante = new Licitante("Licitante Um", leilao); leilao.Iniciar(); leilao.ReceberLance(licitante, 100); // Act leilao.ReceberLance(licitante, 5000); // Assert const int qtdEsperada = 1; var qtdRecebida = leilao.Lances.Count(); Assert.Equal(qtdEsperada, qtdRecebida); }
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 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); }
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); }
public void ReceberLance_NaoPermiteNovosLances_QuandoLeilaoFinalizado(double qtdEsperada, double[] lances) { // Arrange var modalidade = new MaiorValor(); var leilao = new Leilao("Pintura do Van Gogh", modalidade); var licitante1 = new Licitante("Licitante Um", leilao); var licitante2 = new Licitante("Licitante Dois", leilao); leilao.Iniciar(); for (var i = 0; i < lances.Length; i++) { if (i % 2 == 0) { leilao.ReceberLance(licitante1, lances[i]); continue; } leilao.ReceberLance(licitante2, lances[i]); } leilao.Terminar(); // Act if (lances.Length % 2 == 0) { leilao.ReceberLance(licitante1, 5000); } else { leilao.ReceberLance(licitante2, 5000); } // Assert var qtdRecebida = leilao.Lances.Count(); Assert.Equal(qtdEsperada, qtdRecebida); }
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); }