示例#1
0
        [InlineData(2, new double[] { 800, 900 })]               // segundo teste com 2 valores
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int qtdaEsperada, double[] ofertas)
        {
            //Arranje - Recebe lances porém com o leilao já finalizado;
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Porshe", 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)//for par
                {
                    leilao.RecebeLance(fulano, valor);
                }
                else
                {
                    leilao.RecebeLance(maria, valor);
                }
            }

            leilao.TerminaPregao();

            // Act - método sob test
            leilao.RecebeLance(fulano, 100);

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

            Assert.Equal(qtdaEsperada, qtdaObtida);
        }
示例#2
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(
            double valorEsperado, double[] ofertas)
        {
            // Arrange - cenário
            IModalidadeAvaliacao modalidade = new MaiorValor();
            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 - método sob teste
            leilao.TerminaPregao();

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

            Assert.Equal(valorEsperado, valorObtido);
        }
示例#3
0
        public void ComLances(double valorEsperado, double[] valorLances)
        {
            //Arrange
            var modalidade = new MaiorValor();
            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 < valorLances.Length; i++)
            {
                var lance = valorLances[i];
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(fulano, lance);
                }
                else
                {
                    leilao.RecebeLance(beltrano, lance);
                }
            }

            //Act
            leilao.TerminaPregao();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
示例#4
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(double valorEsperado, double[] ofertas)
        {
            //Arranje - Cenário.
            //Dado leilao com lances sem ordemd e valor
            var modalidade = new MaiorValor();
            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);
        }
示例#5
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmLance(float valorEsperado, float[] ofertas)
        {
            //Arrange - cenário do teste
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Excalibur", modalidade);

            var sonic  = new Interessada("Sonic", leilao);
            var arthur = new Interessada("Arthur", leilao);

            leilao.IniciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                var o = ofertas[i];
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(sonic, o);
                }
                else
                {
                    leilao.RecebeLance(arthur, o);
                }
            }
            ;


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


            //Assert - Teste do resultado
            var valorObtido = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
示例#6
0
        public void ClienteNaoPodeRealizarDoisLancesSeguidos(
            int quantidadeLaces,
            double[] ofertas)
        {
            //Arrange
            IModalidadeAvaliacao modalidade
                = new MaiorValor();
            var leilao = new Leilao("Van gogh", modalidade);
            var maria  = new Interessada("Maria", leilao);
            var jose   = new Interessada("Jose", leilao);

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

            //Act - método sob teste
            leilao.RecebeLance(jose, 1500);

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

            Assert.Equal(quantidadeLaces, valorObtido);
        }
示例#7
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(
            int quantidadeLaces,
            double[] ofertas)
        {
            //Arrange
            IModalidadeAvaliacao modalidade
                = new MaiorValor();
            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]);
                }
            }
            leilao.TerminaPregao();

            //Act - método sob teste
            leilao.RecebeLance(jose, 1500);

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

            Assert.Equal(quantidadeLaces, valorObtido);
        }
示例#8
0
        public void NaoPermiteNovosLancesDadoLeilaoFinalizado(int qtdEsperada, double[] ofertas)
        {
            //Arrange - cenários
            var modalidade = new MaiorValor();
            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);
                }
            }

            leilao.TerminaPregao();

            //Act - método sob teste
            leilao.RecebeLance(fulano, 1000);

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

            Assert.Equal(qtdEsperada, qtdObtida);
        }
        public void NãoPermiteNovosLancesDadoLeilaoFinalizado(float[] ofertas)
        {
            var modalidade = new MaiorValor();
            var leilao = new Leilao("Excalibur", modalidade);
            //Arrange - cenário do teste
            var sonic = new Interessada("Sonic", leilao);
            var arthur = new Interessada("Arthur", leilao);

            leilao.IniciaPregao();
            for (int i = 0; i < ofertas.Length; i++)
            {
                var o = ofertas[i];
                if (i % 2 == 0)
                {
                    leilao.RecebeLance(sonic, o);
                }
                else
                {
                    leilao.RecebeLance(arthur, o);
                }
            };

            leilao.TerminaPregao();

            Assert.Throws<LeilaoException>(() => leilao.RecebeLance(sonic, 999999));
        }
        public void LancaInvalidOperationExceptionDadoPregaoNaoIniciado()
        {
            //Arrage
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

            Assert.Throws <System.InvalidOperationException>(() => leilao.TerminaPregao());
        }
示例#11
0
        public void NaoAceitaLanceDadoUltimoLanceSerDoMesmoCliente()
        {
            //Arrange - cenário do teste
            var modalidade = new MaiorValor();
            var leilao = new Leilao("Excalibur", modalidade);
            var sonic = new Interessada("Sonic", leilao);

            leilao.IniciaPregao();
            leilao.RecebeLance(sonic, 1212);

            Assert.Throws<LeilaoException>(() => leilao.RecebeLance(sonic, 1212));
        }
示例#12
0
        public void LancaInvalidOperationExceptionDadoPregaoNaoIniciado()
        {
            //Arranje - Produto mas não há lances
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Porshe", modalidade);

            //Assert
            var excecaoObtida = Assert.Throws <System.InvalidOperationException>(() => /* Act ´- método sob test */ leilao.TerminaPregao());

            var msgEsperada = "Não é possível terminar o pregão sem que tenha começado. Para isso, utilize o método inicia pregão()";

            Assert.Equal(msgEsperada, excecaoObtida.Message);
        }
示例#13
0
        public void QtdePermaneceZeroDadoQuePregaoNaoFoiIniciado(double[] ofertas)
        {
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("Fulano de Tal", leilao);

            foreach (var valor in ofertas)
            {
                leilao.RecebeLance(fulano, valor);
            }

            Assert.Equal(0, leilao.Lances.Count());
        }
示例#14
0
        public void RetornaZeroDadoLeilaoSemLances()
        {
            //Arranje - Cenário
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

            leilao.IniciaPregao();

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

            //Assert
            Assert.Null(leilao.Ganhador.Cliente);
        }
示例#15
0
        public void LancaInvalidOperationExceptionDadoPegaoNaoIniciado()
        {
            //Assert
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

            var excecaoObtida = Assert.Throws <System.InvalidOperationException>(
                //Act - método sob teste
                () => leilao.TerminaPregao()
                );
            string msgEsperada = "Não é possível terminar um pregão ser ele ser iniciado";

            Assert.Equal(msgEsperada, excecaoObtida.Message);
        }
示例#16
0
        public void LancaInvalidOperationExceptionDadoPregaoNaoIniciado()
        {
            //Arranje - cenário de entrada
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            //assert
            var excecaoObtida = Assert.Throws <InvalidOperationException>(
                //act - método sob teste
                () => leilao.TerminaPregao()
                );
            var msgEsperada = "Não é possível terminar o pregão sem que le tenha comçado. Para isso utiliza o método iniciaPregao";

            Assert.Equal(msgEsperada, excecaoObtida.Message);
        }
        public void LancaInvalidOperationExceptionDadoPregaoNaoIniciado()
        {
            //Arranje - cenário
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

            var excecaoObtida = Assert.Throws <System.InvalidOperationException>(
                //Act - método sob teste
                () => leilao.TerminaPregao()
                );
            var msgEsperada = "Não é possivel terminar o pregão sem que ele tenha começado. Para isso, utilize o método IniciarPregao()";

            Assert.Equal(msgEsperada, excecaoObtida.Message);
        }
示例#18
0
        public void SemInicioPregao()
        {
            //Arrange
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("fulano", leilao);

            leilao.RecebeLance(fulano, 300);

            //Assert
            Assert.Throws <System.InvalidOperationException>(
                //Act
                () => leilao.TerminaPregao()
                );
        }
示例#19
0
        public void LancaInvalidOperationExceptionDadoPregaoNaoIniciado()
        {
            //Arrange - cenários
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

            //Assert
            var excecaoObtida = Assert.Throws <System.InvalidOperationException>(
                //Act - método sob teste
                () => leilao.TerminaPregao()
                );
            var msgEsperada = "Não é possível terminar o leilao sem antes iniciá-lo. Para isso, use o método IniciaPrega()";

            Assert.Equal(msgEsperada, excecaoObtida.Message);
        }
示例#20
0
        public void NaoPermiteLanceDadoQuePregaoNaoFoiIniciado(int qtdEsperada, double[] ofertas)
        {
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("Fulano de Tal", leilao);

            foreach (var valor in ofertas)
            {
                leilao.RecebeLance(fulano, valor);
            }

            var qtdObtida = leilao.Lances.Count();

            Assert.Equal(qtdEsperada, qtdObtida);
        }
示例#21
0
        public void NaoAceitaProximoLanceDadoMesmoClienteRealizouUltimoLance()
        {
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gough", modalidade);
            var fulano     = new Interessada("Fulano", leilao);

            leilao.IniciaPregao();
            leilao.RecebeLance(fulano, 400);
            leilao.RecebeLance(fulano, 1000);

            var qtdeEsperado = 1;
            var qtdeObtida   = leilao.Lances.Count();

            Assert.Equal(qtdeEsperado, qtdeObtida);
        }
        public void LancaInvalidOperationExceptionDadoPregaoNaoIniciado()
        {
            //Arrange
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

            //Assert
            var excecaoObtida = Assert.Throws <System.InvalidOperationException>(
                //Act
                () => leilao.TerminaPregao()
                );

            var msgEsperada = "Não é possível terminar o pregão sem que ele tenha iniciado.";

            Assert.Equal(msgEsperada, excecaoObtida.Message);
        }
示例#23
0
        public void RetornaZeroDadoLeilaoSemLances()
        {
            //Arranje - cenário
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

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

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

            Assert.Equal(valorEsperado, valorObtido);
        }
示例#24
0
        public void LancaInvalidOperationExceptionDadoPregaoNaoIniciado()
        {
            // Arrange
            IModalidadeAvaliacao modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);

            var exceptionObitida = Assert.Throws <InvalidOperationException>(() => {
                // Act
                leilao.TerminaPregao();
            });

            var msgEsperada = "Não é possivel terminar o pregao sem que ele tenha começado. Para isso inicie o metodo iniciaPregao";

            // Assert
            Assert.Equal(msgEsperada, exceptionObitida.Message);
        }
示例#25
0
        public void LanceInvalidOperationExeptionDadoPregaoNaoIniciado()
        {
            //Arranje - cenário
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);

            //Assert
            var excecaoObj = Assert.Throws <System.InvalidOperationException>(() =>
                                                                              //Act - método sob teste
                                                                              leilao.TerminaPregao()
                                                                              );

            var msgEsperada = "Não é possivel terminar";

            Assert.Equal(msgEsperada, excecaoObj.Message);
        }
        public void NaoAceitaProximoLanceDadoMesmoClienteRealizouUltimoLance()
        {
            //Arranje - cenário de entrada
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Van Gogh", modalidade);
            var fulano     = new Interessada("Fulado", leilao);

            leilao.InciaPregao();
            leilao.RecebeLance(fulano, 800);
            //act - método sob teste
            leilao.RecebeLance(fulano, 1000);
            //assert
            var qtdeEsperada = 1;
            var qtdeObtida   = leilao.Lances.Count();

            Assert.Equal(qtdeEsperada, qtdeObtida);
        }
示例#27
0
        public void RetornaZeroDadoLeilaoSemLances()
        {
            // Arrange - cenário
            IModalidadeAvaliacao modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);

            leilao.IniciaPregao();

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

            // Assert - verificação com as espectativas
            var valorEsperado = 0;
            var valorObtido   = leilao.Ganhador.Valor;

            Assert.Equal(valorEsperado, valorObtido);
        }
示例#28
0
        public void LancaInvalidOperationExceptionDadoPregaoNaoIniciado()
        {
            // Arrange - cenário
            IModalidadeAvaliacao modalidade = new MaiorValor();
            var leilao = new Leilao("Van Gogh", modalidade);

            // Assert
            var excecaoObtida = Assert.Throws <InvalidOperationException>(
                // Act - método sob teste (passando como delegate)
                () => leilao.TerminaPregao()
                );

            // para checar uma prop. da excpetion tivemos que gurada-la em uma var.
            var msgEsperada = "Não é possivel terminar o pregão sem te-lo inicializado";

            Assert.Equal(msgEsperada, excecaoObtida.Message);
        }
示例#29
0
        public void LancaInvalidOperationExceptionCasoTerminoPregaoNaoIniciado()
        {
            //Arrange
            IModalidadeAvaliacao modalidade
                = new MaiorValor();
            var leilao = new Leilao("Van gogh", modalidade);

            //Asset
            var msgObtida = Assert.Throws <InvalidOperationException>(
                //Act - método sob teste
                () => leilao.TerminaPregao());

            var msgEsperada = "Não é possível terminar o pregão " +
                              "sem que ele tenha começado. Para isso utilize o método IniciaPregao.";

            Assert.Equal(msgEsperada, msgObtida.Message);
        }
示例#30
0
        public void RetornaZeroDadoLeilaoSemLances()
        {
            //Arranje - Produto mas não há lances
            var modalidade = new MaiorValor();
            var leilao     = new Leilao("Porshe", modalidade);

            leilao.IniciaPregao();

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

            var valorEsperado = 0;
            var valorObtido   = leilao.Ganhador.Valor;

            //Assert
            Assert.Equal(valorEsperado, valorObtido);
        }