public void IntergrationTestRouteProxing(RoutesInspector sut, System.Web.Routing.IRouteHandler routeHandler, IInspectorContext context)
        {
            RouteTable.Routes.Clear();
            RouteTable.Routes.Add("Test", new Route("Test", routeHandler));
            RouteTable.Routes.Add("BaseTyped", new NewRouteBase());
            RouteTable.Routes.Add("BaseTestTyped", new NewConstructorRouteBase("Name"));
            RouteTable.Routes.Add("SubTyped", new NewRoute("test", routeHandler));
            RouteTable.Routes.Add("SubTestTyped", new NewConstructorRoute("test", routeHandler, "Name"));
            RouteTable.Routes.Ignore("{resource}.axd/{*pathInfo}", new { resource = "Test", pathInfo = "[0-9]" });

            context.Setup(x => x.ProxyFactory).Returns(new CastleDynamicProxyFactory(context.Logger, context.MessageBroker, () => new ExecutionTimer(new Stopwatch()), () => new RuntimePolicy()));

            sut.Setup(context);

            // This test needs to be like this because IProxyTargetAccessor is in Moq and Glimpse
            foreach (var route in RouteTable.Routes)
            {
                var found = false;
                foreach (var routeInterface in route.GetType().GetInterfaces())
                {
                    if (routeInterface.Name == "IProxyTargetAccessor")
                    {
                        found = true;
                    }
                }

                Assert.True(found);
            }
        }
        public void ExtendsMvcRoutes(System.Web.Routing.IRouteHandler routeHandler, RoutesInspector sut, IInspectorContext context, Route newRoute)
        {
            RouteTable.Routes.Clear();
            RouteTable.Routes.Add("Test", new Route("Test", routeHandler));

            context.ProxyFactory.Setup(x => x.ExtendClass <Route>(It.IsAny <IEnumerable <IAlternateMethod> >(), It.IsAny <IEnumerable <object> >(), It.IsAny <object[]>())).Returns(newRoute).Verifiable();

            sut.Setup(context);

            context.ProxyFactory.VerifyAll();
            Assert.Same(newRoute, RouteTable.Routes[0]);
        }
        public void WrapsMvcRouteBaseDerivedTypes(RoutesInspector sut, System.Web.Routing.IRouteHandler routeHandler, IInspectorContext context, NewRouteBase route, RouteBase newRoute)
        {
            RouteTable.Routes.Clear();
            RouteTable.Routes.Add("Test", route);

            context.ProxyFactory.Setup(x => x.IsWrapClassEligible(typeof(RouteBase))).Returns(true);
            context.ProxyFactory.Setup(x => x.WrapClass((RouteBase)route, It.IsAny <IEnumerable <IAlternateMethod> >(), It.IsAny <object[]>())).Returns(newRoute).Verifiable();

            sut.Setup(context);

            context.ProxyFactory.VerifyAll();
            Assert.Same(newRoute, RouteTable.Routes[0]);
        }
 public NewConstructorRoute(string url, System.Web.Routing.IRouteHandler routeHandler, string name)
     : base(url, routeHandler)
 {
 }
 public NewRoute(string url, System.Web.Routing.RouteValueDictionary defaults, System.Web.Routing.RouteValueDictionary constraints, System.Web.Routing.RouteValueDictionary dataTokens, System.Web.Routing.IRouteHandler routeHandler)
     : base(url, defaults, constraints, dataTokens, routeHandler)
 {
 }
 public NewRoute(string url, System.Web.Routing.RouteValueDictionary defaults, System.Web.Routing.IRouteHandler routeHandler)
     : base(url, defaults, routeHandler)
 {
 }
 public NewRoute(string url, System.Web.Routing.IRouteHandler routeHandler)
     : base(url, routeHandler)
 {
 }