public void RouteExistsTest()
 {
     foreach (var routePathItem in TodoController.GetRoutePaths)
     {
         Assert.True(_routeProvider.RouteExists("http://chromely.com" + routePathItem.Value));
     }
 }
Example #2
0
    public void RouteCountTest()
    {
        var todoRouteCount           = TodoController.GetRoutePaths.Count;
        var todoRouteCountRegistered = 0;

        foreach (var routePathItem in TodoController.GetRoutePaths)
        {
            if (_routeProvider.RouteExists("http://chromely.com" + routePathItem.Value))
            {
                todoRouteCountRegistered++;
            }
        }

        Assert.Equal(todoRouteCount, todoRouteCountRegistered);
    }
    public static void CreateAndRegisterRoutes(IChromelyRouteProvider routeProvider, ChromelyController controller, IChromelyModelBinder routeParameterBinder, IChromelyDataTransferOptions dataTransferOptions)
    {
        if (routeProvider is null || controller is null)
        {
            return;
        }

        var methodInfos = controller.GetType().GetMethods()
                          .Where(m => m.GetCustomAttributes(typeof(ChromelyRouteAttribute), false).Length > 0)
                          .ToArray();

        foreach (var methodInfo in methodInfos)
        {
            var attribute = methodInfo.GetCustomAttribute <ChromelyRouteAttribute>();
            var key       = RouteKeys.CreateActionKey(controller.RoutePath, attribute?.Path ?? string.Empty);
            if (!routeProvider.RouteExists(key))
            {
                routeProvider.RegisterRoute(key, ControllerRoutesFactory.CreateDelegate(controller, methodInfo, routeParameterBinder, dataTransferOptions));
            }
        }
    }