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)); }
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); }