Пример #1
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);
        }
Пример #2
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);
        }
Пример #3
0
        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);
        }
Пример #4
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);
        }
Пример #5
0
        public void LancaExceptionDadoPregaoNaoIniciado()
        {
            //Arrange
            IModalidadeLeilao modalidadeLeilao = new ModalidadeOfertaMaiorValor();
            var leilao = new Leilao("peça leiloada", modalidadeLeilao);

            //Assert
            var excecaoCapturada = Assert.Throws <InvalidOperationException>(
                //Act
                () => leilao.TerminarPregao()
                );

            //Assert
            var esperado = "Não é possível terminar o leilão sem ter iniciado.";

            Assert.Equal(esperado, excecaoCapturada.Message);
        }
Пример #6
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);
        }
Пример #7
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);
        }