예제 #1
0
        public void RetornaResultadoNaoNulo()
        {
            var leilao = new Core.Leilao("Peça qualquer");

            leilao.Inicia();
            var resultado = leilao.Termina();

            Assert.NotNull(resultado);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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
                );
        }
예제 #4
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);
        }
예제 #5
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);
        }