Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }