public void Method_Returns_StatusCode_200()
        {
            // Arrange
            var request = new PresentValueRequest()
            {
                FutureValue  = 1100D,
                DiscountRate = 10D,
                Periods      = 10
            };

            var mockCalc = new Mock <IFinancialCalculator>();

            mockCalc.Setup(s => s.CalculatePresentValueMulti(request.FutureValue, request.DiscountRate, request.Periods)).Returns(It.IsAny <IEnumerable <PeriodAmount> >());

            var mockService = new Mock <IFinancialService>();

            var controller = new FinancialController(mockCalc.Object, mockService.Object);

            // Act
            var result = controller.CalculatePresentValue(request);

            // Assert
            var iAsyncResult = Assert.IsAssignableFrom <OkObjectResult>(result);
            var okResult     = iAsyncResult as OkObjectResult;

            Assert.NotNull(okResult);
            Assert.Equal(200, okResult.StatusCode);
        }
        public IActionResult CalculatePresentValue(PresentValueRequest request)
        {
            var result = _calcalculator.CalculatePresentValueMulti(
                request.FutureValue,
                request.DiscountRate,
                request.Periods);

            return(Ok(result));
        }