public void To <TController>(HttpMethod httpMethod, Expression <Action <TController> > action) where TController : ApiController
        {
            var expressionReader = new ExpressionReader();
            IDictionary <string, string> expectedProps = expressionReader.Read(action);

            ApiRouteAssert.HasRoute(Configuration, Url, httpMethod, requestBody, expectedProps);
        }
        public void From <TController>(Expression <Func <TController, ActionResult> > action) where TController : Controller
        {
            var expressionReader = new ExpressionReader();
            var fromProps        = expressionReader.Read(action);

            WebRouteAssert.GeneratesActionUrl(Routes, HttpMethod.Get, Url, fromProps, appPath: requestAppPath, requestBody: requestBody);
        }
        public void To <TController>(HttpMethod httpMethod, Expression <Func <TController, Task <ActionResult> > > action) where TController : Controller
        {
            var expressionReader = new ExpressionReader();
            var expectedProps    = expressionReader.Read(action);

            WebRouteAssert.HasRoute(Routes, httpMethod, Url, requestBody, bodyFormat, expectedProps);
        }
        public void To <TController>(Expression <Func <TController, ActionResult> > action) where TController : Controller
        {
            var expressionReader = new ExpressionReader();
            IDictionary <string, string> expectedProps = expressionReader.Read(action);

            WebRouteAssert.HasRoute(Routes, HttpMethod.Get, Url, requestBody, expectedProps);
        }
        public UrlAndHttpRoutes To <TController>(Dictionary <string, string> headers, Expression <Action <TController> > action) where TController : ApiController
        {
            var expressionReader = new ExpressionReader();
            var expectedProps    = expressionReader.Read(action);

            ApiRouteAssert.HasRoute(Configuration, Url, HttpMethod, headers, requestBody, bodyFormat, expectedProps);

            return(this);
        }