public void ColocaStatusComoLeilaoEmAndamento() { var leilao = new Core.Leilao("Peça qualquer"); leilao.Inicia(); Assert.Equal(StatusLeilao.LeilaoEmAndamento, leilao.Status); }
public void GanhadorEhOValorSuperioMaisProximoDadoLeilaoNessaModalidade(double valorDefinido, double valorEsperado, double[] lances) { //Arange IModalidadeLeilao modalidade = new ModalidadeSuperiorMaisProximo(valorDefinido); var leilao = new Core.Leilao("Van Gogh", modalidade); var joao = new Interessada("João", leilao); var maria = new Interessada("Maria", leilao); leilao.IniciaPregao(); for (int i = 0; i < lances.Length; i++) { if (i % 2 == 0) { leilao.RecebeLance(joao, lances[i]); } else { leilao.RecebeLance(maria, lances[i]); } } //Act leilao.TerminaPregao(); //Assert var retorno = leilao.Ganhador.Valor; Assert.Equal(valorEsperado, retorno); }
public void LeilaoComLancesRetornaOMaiorLance(double[] lances, double valorEsperado) { //Arange IModalidadeLeilao modalidade = new ModalidadeMaiorValor(); var leilao = new Core.Leilao("Van Gogh", modalidade); var joao = new Interessada("João", leilao); var maria = new Interessada("Maria", leilao); leilao.IniciaPregao(); for (int i = 0; i < lances.Length; i++) { if (i % 2 == 0) { leilao.RecebeLance(joao, lances[i]); } else { leilao.RecebeLance(maria, lances[i]); } } //Act leilao.TerminaPregao(); //Assert var retorno = leilao.Ganhador.Valor; Assert.Equal(valorEsperado, retorno); }
public void LeilaoFinalizadoNaoPermiteNovosLances(int qtdEsperada, double[] lances) { //Arange IModalidadeLeilao modalidade = new ModalidadeMaiorValor(); var leilao = new Core.Leilao("Van Gogh", modalidade); var joao = new Interessada("João", leilao); var maria = new Interessada("Maria", leilao); leilao.IniciaPregao(); for (int i = 0; i < lances.Length; i++) { if (i % 2 == 0) { leilao.RecebeLance(joao, lances[i]); } else { leilao.RecebeLance(maria, lances[i]); } } leilao.TerminaPregao(); //Act leilao.RecebeLance(joao, 1000); var qtdObitida = leilao.Lances.Count(); //Assert Assert.Equal(qtdEsperada, qtdObitida); }
public void AntesDeInvocadoNaoPermiteLances() { var leilao = new Core.Leilao("Peça qualquer"); var joao = new Interessado("Fulano de tal", leilao); leilao.RecebeOferta(new Lance(joao, 901)); leilao.RecebeOferta(new Lance(joao, 1349)); Assert.Equal(0, leilao.Lances.Count); }
public void RetornaResultadoNaoNulo() { var leilao = new Core.Leilao("Peça qualquer"); leilao.Inicia(); var resultado = leilao.Termina(); Assert.NotNull(resultado); }
public void DepoisDeInvocadoNaoPermiteNovosLances() { var leilao = new Core.Leilao("Peça qualquer"); leilao.Inicia(); var resultado = leilao.Termina(); new Interessado("Fulano", leilao).Oferece(250); Assert.Equal(0, leilao.Lances.Count); }
public void DepoisDeInvocadoAceitaLances() { var leilao = new Core.Leilao("Peça qualquer"); var joao = new Interessado("Fulano de tal", leilao); var maria = new Interessado("Maria", leilao); leilao.Inicia(); leilao.RecebeOferta(new Lance(joao, 901)); leilao.RecebeOferta(new Lance(maria, 1349)); Assert.Equal(2, leilao.Lances.Count); }
public void NaoPermiteLancesConsecutivosDoMesmoCliente() { var leilao = new Core.Leilao("Peça qualquer"); var joao = new Interessado("João", leilao); leilao.Inicia(); leilao.RecebeOferta(new Lance(joao, 180)); leilao.RecebeOferta(new Lance(joao, 200)); Assert.Equal(1, leilao.Lances.Count); Assert.Equal(180, leilao.Lances[0].Valor); }
public void DadoLeilaoAntesPregaoDeveLancarInvalidOperationException() { var leilao = new Core.Leilao("Peça qualquer"); var excecaoRetornada = Assert .Throws <InvalidOperationException>(() => leilao.Termina()); var mensagemEsperada = "Leilão não pode ser finalizado antes do pregão começar."; Assert.Equal( mensagemEsperada, excecaoRetornada.Message ); }
public void LeilaoNaoIniciadoLancaInvalidOperationException() { IModalidadeLeilao modalidade = new ModalidadeMaiorValor(); var leilao = new Core.Leilao("Van Gogh", modalidade); //Act var excecaoObtida = Assert.Throws <InvalidOperationException>( () => leilao.TerminaPregao() ); var mensagem = "Leilão não iniciado não pode ser terminado."; //Assert Assert.Equal(mensagem, excecaoObtida.Message); }
public void LeilaoSemLancesRetornaZero() { IModalidadeLeilao modalidade = new ModalidadeMaiorValor(); var leilao = new Core.Leilao("Van Gogh", modalidade); leilao.IniciaPregao(); //Act leilao.TerminaPregao(); //Assert var esperado = 0; var retorno = leilao.Ganhador.Valor; Assert.Equal(esperado, retorno); }
public void RetornaMaiorOferta( double maiorLanceEsperado, double[] ofertas) { var leilao = new Core.Leilao("Pintura de Dalí"); leilao.Inicia(); foreach (var oferta in ofertas) { leilao.RecebeOferta( new Lance(new Interessado("Fulano", leilao), oferta) ); } var resultado = leilao.Termina(); Assert.Equal(maiorLanceEsperado, resultado.MelhorLance.Valor); }
public void NaoPermiteLancesMenoresDoMesmoCliente() { var leilao = new Core.Leilao("Peça qualquer"); var joao = new Interessado("João", leilao); var maria = new Interessado("Maria", leilao); leilao.Inicia(); leilao.RecebeOferta(new Lance(joao, 180)); leilao.RecebeOferta(new Lance(maria, 200)); leilao.RecebeOferta(new Lance(joao, 170)); Assert.Equal(2, leilao.Lances.Count); var valorLanceJoao = leilao.Lances .Where(l => l.Cliente == joao) .Select(l => l.Valor) .First(); Assert.Equal(180, valorLanceJoao); }
public void RetornaOfertaSuperiorMaisProxima( double valorEsperado, double valorDestino, double[] ofertas) { var leilao = new Core.Leilao("Peça qualquer", new OfertaSuperiorMaisProxima(valorDestino)); leilao.Inicia(); foreach (var oferta in ofertas) { var interessado = new Interessado("Fulano", leilao); var lance = new Lance(interessado, oferta); leilao.RecebeOferta(lance); } var resultado = leilao.Termina(); Assert.Equal(valorEsperado, resultado.MelhorLance.Valor); }
public void LancesConsecutivosDoMesmoInteressadoAceitaApenasOPrimeiro() { //Arange IModalidadeLeilao modalidade = new ModalidadeMaiorValor(); var leilao = new Core.Leilao("Van Gogh", modalidade); var joao = new Interessada("João", leilao); leilao.IniciaPregao(); leilao.RecebeLance(joao, 1000); //Act leilao.RecebeLance(joao, 1200); //Assert leilao.TerminaPregao(); var qtdObitida = leilao.Lances.Count(); var qtdEsperada = 1; Assert.Equal(qtdEsperada, qtdObitida); }