public void CalcCValue_ReturnsOkNegotiatedContentResult()
        {
            //System.Diagnostics.Debugger.Launch();

            // arrange
            var mock = new Mock<ICalcEngine>();
            mock.Setup(x => x.Calc(It.IsInRange<int>(1, int.MaxValue, Range.Inclusive))).Returns<int>(v => 10 % v);

            var controller = new CalcController(mock.Object);

            // act
            IHttpActionResult actionResult = controller.CalcCValue(10);

            //  assert
            Assert.IsType<OkNegotiatedContentResult<int>>(actionResult);
        }
        public async void CalcCValue_ReturnsInternalServerErrorWithReasonPhrase()
        {
            //System.Diagnostics.Debugger.Launch();

            // arrange
            var mock = new Mock<ICalcEngine>();
            mock.Setup(x => x.Calc(It.IsAny<int>())).Throws<DivideByZeroException>();

            var controller = new CalcController(mock.Object).ConfigureForGet(int.MinValue);

            // act
            IHttpActionResult actionResult = controller.CalcCValue(int.MinValue);

            // assert
            Assert.IsType<WrappedHttpActionResult>(actionResult);

            HttpResponseMessage response = await actionResult.ExecuteAsync(CancellationToken.None);
            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
            Assert.Equal("Internal Server Error: Check your calculation!", response.ReasonPhrase);
        }