Exemplo n.º 1
0
        public void FeatureToggleRoute_Constructor_MapsRoutePropertiesValues()
        {
            var currentRouteProperties = new RouteProperties()
            {
                RouteHandler = new MvcRouteHandler()
            };
            var experimentalRouteProperties = new RouteProperties()
            {
                RouteHandler = new MvcRouteHandler()
            };
            var route = new FeatureToggleRoute("test", (r) => true, currentRouteProperties, experimentalRouteProperties);

            Assert.That(route.Url, Is.EqualTo("test"));
            Assert.That(route.Defaults, Is.Null);
            Assert.That(route.DataTokens, Is.Null);
            Assert.That(route.Constraints, Is.Null);
            Assert.That(route.CurrentRouteProperties, Is.EqualTo(currentRouteProperties));
            Assert.That(route.ExperimentalRouteProperties, Is.EqualTo(experimentalRouteProperties));
        }
Exemplo n.º 2
0
        public void FeatureToggleRoute_GetRouteData_Test()
        {
            var currentRouteProperties = new RouteProperties()
            {
                Defaults    = null,
                Constraints = new { id = @"\d+" }.ToRouteValueDictionary(),
                DataTokens = new { routename = "OfferDetailsWebForms" }.ToRouteValueDictionary(),
                RouteHandler = new PageRouteHandler("~/Pages/Offer/Details.aspx", true)
            };
            var experimentalRouteProperties = new RouteProperties()
            {
                Defaults = new { controller = "Offers", action = "Details" }.ToRouteValueDictionary(),
                Constraints = new { id = @"\d+" }.ToRouteValueDictionary(),
                DataTokens = new { routename = "OfferDetailsMvc" }.ToRouteValueDictionary(),
                RouteHandler = new MvcRouteHandler()
            };
            bool ftValue = false;

            var route = new FeatureToggleRoute("jobs/job-{title}_{id}", (r) => ftValue, currentRouteProperties, experimentalRouteProperties);

            Assert.That(route.Url, Is.EqualTo("jobs/job-{title}_{id}"));
            Assert.That(route.Defaults, Is.Null);
            Assert.That(route.DataTokens, Is.Null);
            Assert.That(route.Constraints, Is.Null);
            Assert.That(route.CurrentRouteProperties, Is.EqualTo(currentRouteProperties));
            Assert.That(route.ExperimentalRouteProperties, Is.EqualTo(experimentalRouteProperties));

            var mockHttpRequest = new Mock <HttpRequestBase>();

            mockHttpRequest.SetupGet(p => p.AppRelativeCurrentExecutionFilePath).Returns("~/jobs/job-project-manager_1554");
            mockHttpRequest.SetupGet(p => p.PathInfo).Returns("");

            var mockHttpContext = new Mock <HttpContextBase>();

            mockHttpContext.SetupGet(p => p.Request).Returns(mockHttpRequest.Object);

            var routeData = route.GetRouteData(mockHttpContext.Object);

            Assert.That(routeData, Is.Not.Null);
            Assert.That(routeData.RouteHandler, Is.InstanceOf <PageRouteHandler>());
            Assert.That(routeData.Values, Is.Not.Null);
            Assert.That(routeData.Values.ContainsKey("controller"), Is.False);
            Assert.That(routeData.Values.ContainsKey("action"), Is.False);
            Assert.That(routeData.Values["title"], Is.EqualTo("project-manager"));
            Assert.That(routeData.Values["id"], Is.EqualTo("1554"));
            Assert.That(routeData.DataTokens, Is.Not.Null);
            Assert.That(routeData.DataTokens["routename"], Is.EqualTo("OfferDetailsWebForms"));

            Assert.That(route.Url, Is.EqualTo("jobs/job-{title}_{id}"));
            Assert.That(route.Defaults, Is.Null);
            Assert.That(route.DataTokens, Is.Null);
            Assert.That(route.Constraints, Is.Null);
            Assert.That(route.CurrentRouteProperties, Is.EqualTo(currentRouteProperties));
            Assert.That(route.ExperimentalRouteProperties, Is.EqualTo(experimentalRouteProperties));

            ftValue   = true;
            routeData = route.GetRouteData(mockHttpContext.Object);

            Assert.That(routeData, Is.Not.Null);
            Assert.That(routeData.RouteHandler, Is.InstanceOf <MvcRouteHandler>());
            Assert.That(routeData.Values, Is.Not.Null);
            Assert.That(routeData.Values["controller"], Is.EqualTo("Offers"));
            Assert.That(routeData.Values["action"], Is.EqualTo("Details"));
            Assert.That(routeData.Values["title"], Is.EqualTo("project-manager"));
            Assert.That(routeData.Values["id"], Is.EqualTo("1554"));
            Assert.That(routeData.DataTokens, Is.Not.Null);
            Assert.That(routeData.DataTokens["routename"], Is.EqualTo("OfferDetailsMvc"));

            Assert.That(route.Url, Is.EqualTo("jobs/job-{title}_{id}"));
            Assert.That(route.Defaults, Is.Null);
            Assert.That(route.DataTokens, Is.Null);
            Assert.That(route.Constraints, Is.Null);
            Assert.That(route.CurrentRouteProperties, Is.EqualTo(currentRouteProperties));
            Assert.That(route.ExperimentalRouteProperties, Is.EqualTo(experimentalRouteProperties));
        }
Exemplo n.º 3
0
        public void FeatureToggleRoute_GetVirtualPath_Test()
        {
            var currentRouteProperties = new RouteProperties()
            {
                Defaults    = null,
                Constraints = new { id = @"\d+" }.ToRouteValueDictionary(),
                DataTokens = new { routename = "OfferDetailsWebForms" }.ToRouteValueDictionary(),
                RouteHandler = new PageRouteHandler("~/Pages/Offer/Details.aspx", true)
            };
            var experimentalRouteProperties = new RouteProperties()
            {
                Defaults = new { controller = "Offers", action = "Details" }.ToRouteValueDictionary(),
                Constraints = new { id = @"\d+" }.ToRouteValueDictionary(),
                DataTokens = new { routename = "OfferDetailsMvc" }.ToRouteValueDictionary(),
                RouteHandler = new MvcRouteHandler()
            };
            bool ftValue = false;

            var route = new FeatureToggleRoute("jobs/job-{title}_{id}", (r) => ftValue, currentRouteProperties, experimentalRouteProperties);

            Assert.That(route.Url, Is.EqualTo("jobs/job-{title}_{id}"));
            Assert.That(route.Defaults, Is.Null);
            Assert.That(route.DataTokens, Is.Null);
            Assert.That(route.Constraints, Is.Null);
            Assert.That(route.CurrentRouteProperties, Is.EqualTo(currentRouteProperties));
            Assert.That(route.ExperimentalRouteProperties, Is.EqualTo(experimentalRouteProperties));

            var ctx = new RequestContext(new Mock <HttpContextBase>().Object, new RouteData());
            var vpd = route.GetVirtualPath(ctx, new { id = 1554, title = "project-manager" }.ToRouteValueDictionary());

            Assert.That(vpd, Is.Not.Null);
            Assert.That(vpd.DataTokens, Is.Not.Null);
            Assert.That(vpd.DataTokens.Count, Is.EqualTo(1));
            Assert.That(vpd.DataTokens["routename"], Is.EqualTo("OfferDetailsWebForms"));
            Assert.That(vpd.Route, Is.EqualTo(route));
            Assert.That(vpd.VirtualPath, Is.EqualTo("jobs/job-project-manager_1554"));

            Assert.That(route.Url, Is.EqualTo("jobs/job-{title}_{id}"));
            Assert.That(route.Defaults, Is.Null);
            Assert.That(route.DataTokens, Is.Null);
            Assert.That(route.Constraints, Is.Null);
            Assert.That(route.CurrentRouteProperties, Is.EqualTo(currentRouteProperties));
            Assert.That(route.ExperimentalRouteProperties, Is.EqualTo(experimentalRouteProperties));

            ftValue = true;
            vpd     = route.GetVirtualPath(ctx, new { id = 1554, title = "project-manager" }.ToRouteValueDictionary());

            Assert.That(vpd, Is.Not.Null);
            Assert.That(vpd.DataTokens, Is.Not.Null);
            Assert.That(vpd.DataTokens.Count, Is.EqualTo(1));
            Assert.That(vpd.DataTokens["routename"], Is.EqualTo("OfferDetailsMvc"));
            Assert.That(vpd.Route, Is.EqualTo(route));
            Assert.That(vpd.VirtualPath, Is.EqualTo("jobs/job-project-manager_1554"));

            Assert.That(route.Url, Is.EqualTo("jobs/job-{title}_{id}"));
            Assert.That(route.Defaults, Is.Null);
            Assert.That(route.DataTokens, Is.Null);
            Assert.That(route.Constraints, Is.Null);
            Assert.That(route.CurrentRouteProperties, Is.EqualTo(currentRouteProperties));
            Assert.That(route.ExperimentalRouteProperties, Is.EqualTo(experimentalRouteProperties));
        }