Exemplo n.º 1
0
        public void CalculoDeveRetornarValorComDuasCasasDecimais(int valorInicial, int meses, double resultadoEsperado)
        {
            JurosCompostosCalculo calculo = null;
            JurosCompostosHandler handler = null;
            decimal resultado             = default;

            $"Dado um valor inicial {valorInicial} e um número de meses {meses}"
            .x(() => calculo = new JurosCompostosCalculo(valorInicial, meses));

            "E um handler com taxa de juros 0.01"
            .x(() =>
            {
                var mediator = new Mock <IMediator>();
                mediator
                .Setup(obj => obj.Send(It.IsAny <TaxaJurosConsulta>(), It.IsAny <CancellationToken>()))
                .Returns(Task.FromResult(0.01m));

                handler = new JurosCompostosHandler(mediator.Object);
            });

            "Quando realizarmos o cálculo"
            .x(async() => resultado = await handler.Handle(calculo, default));

            "Então o valor do resultado deve ser igual a 105.1"
            .x(() => Assert.Equal((decimal)resultadoEsperado, resultado));
        }
Exemplo n.º 2
0
        public async Task <ActionResult <decimal> > GetJurosCompostos([FromQuery] JurosCompostosModel dados, CancellationToken cancellationToken)
        {
            var consulta = new JurosCompostosCalculo(
                valorInicial: dados.ValorInicial.Value,
                meses: dados.Meses.Value
                );

            var juros = await _mediator.Send(consulta, cancellationToken);

            return(juros);
        }