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 TerminaPregao_LancaInvalidOperationException_QuandoLeilaoNaoIniciado() { // Arrange var modalidade = new MaiorValor(); var leilao = new Leilao("Pintura do Van Gogh", modalidade); // Assert var exception = Assert.Throws <InvalidOperationException>(() => { leilao.Terminar(); }); const string valorEsperado = "Não é possível terminar o leilão sem antes iniciá-lo."; Assert.Equal(valorEsperado, exception.Message); }
public void TerminaPregao_RetornaZero_QuandoLeilaoSemLances() { // Arrange var modalidade = new MaiorValor(); var leilao = new Leilao("Pintura do Van Gogh", modalidade); leilao.Iniciar(); // Act leilao.Terminar(); // Assert var valorEsperado = 0; var valorRecebido = leilao.Ganhador.Valor; Assert.Equal(valorEsperado, valorRecebido); }
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); }