public void GetFibonacciNumber_ShouldReturn_ValidNumber_FromSeries()
        {
            int[] fibonacci = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
            var   result    = _calculationsService.GetFibonacciNumber(4);

            Assert.AreEqual(fibonacci[4], 3);
        }
        public void Fibonacci_ShouldReturn_CorrectIndex_FromSeries()
        {
            var expectedResult = 21;

            _calculations.GetFibonacciNumber(Arg.Any <long>()).Returns(expectedResult);
            var actionResult  = _valuesController.Fibonacci(8);
            var contentResult = actionResult as OkNegotiatedContentResult <string>;

            Assert.IsNotNull(contentResult);
            Assert.AreEqual(Convert.ToInt64(contentResult.Content), expectedResult);
        }
        public IHttpActionResult Fibonacci(long n)
        {
            if (n < 0)
            {
                return(BadRequest());
            }

            try
            {
                var result = _calculations.GetFibonacciNumber(n);
                if (result < 0)
                {
                    return(BadRequest());
                }
                return(Ok(result.ToString()));
            }
            catch (OverflowException)
            {
                return(BadRequest());
            }
        }