public void GetVirtualPath_NoTranslationExistsForThreadCulture_ReturnsNeutralLocalizationRoute() { using (ShimsContext.Create()) { // Arrange Thread.CurrentThread.CurrentUICulture = new CultureInfo("es"); LocalizationCollectionRoute localizationCollectionRoute = new LocalizationCollectionRoute(new HttpRoute("Home", new HttpRouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new HttpRouteValueDictionary(), new HttpRouteValueDictionary(), null)); PrivateObject privateObject = new PrivateObject(localizationCollectionRoute); IDictionary<string, LocalizationRoute> routes = (IDictionary<string, LocalizationRoute>)privateObject.GetProperty("LocalizedRoutesContainer"); ShimLocalizationRoute localizationRouteNeutral = new ShimLocalizationRoute(new LocalizationRoute("Welcome", new HttpRouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new HttpRouteValueDictionary(), new HttpRouteValueDictionary(), null, string.Empty)); (new ShimHttpRoute(localizationRouteNeutral)).GetVirtualPathHttpRequestMessageIDictionaryOfStringObject = (requestContext, values) => new HttpVirtualPathData(localizationRouteNeutral.Instance, "Welcome"); routes[string.Empty] = localizationRouteNeutral; ShimLocalizationRoute localizationRouteEnglish = new ShimLocalizationRoute(new LocalizationRoute("Welcome", new HttpRouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new HttpRouteValueDictionary(), new HttpRouteValueDictionary(), null, "en")); (new ShimHttpRoute(localizationRouteEnglish)).GetVirtualPathHttpRequestMessageIDictionaryOfStringObject = (requestContext, values) => new HttpVirtualPathData(localizationRouteEnglish.Instance, "Welcome"); routes["en"] = localizationRouteEnglish; ShimLocalizationRoute localizationRouteGerman = new ShimLocalizationRoute(new LocalizationRoute("Willkommen", new HttpRouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new HttpRouteValueDictionary(), new HttpRouteValueDictionary(), null, "de")); routes["de"] = localizationRouteGerman; (new ShimHttpRoute(localizationRouteGerman)).GetVirtualPathHttpRequestMessageIDictionaryOfStringObject = (requestContext, values) => new HttpVirtualPathData(localizationRouteGerman.Instance, "Willkommen"); // Act IHttpVirtualPathData virtualPathData = localizationCollectionRoute.GetVirtualPath(null, new HttpRouteValueDictionary()); // Assert Assert.AreEqual(virtualPathData.Route, localizationRouteNeutral.Instance); } }
public void GetVirtualPath_OverriddenCultureByRouteDictionaryThatDoesNotExist_ReturnsNeutralLocalizationRoute() { using (ShimsContext.Create()) { // Arrange Thread.CurrentThread.CurrentUICulture = new CultureInfo("en"); LocalizationCollectionRoute localizationCollectionRoute = new LocalizationCollectionRoute(new Route("Home", new RouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new RouteValueDictionary(), new RouteValueDictionary(), null)); PrivateObject privateObject = new PrivateObject(localizationCollectionRoute); IDictionary<string, LocalizationRoute> routes = (IDictionary<string, LocalizationRoute>)privateObject.GetProperty("LocalizedRoutesContainer"); ShimLocalizationRoute localizationRouteNeutral = new ShimLocalizationRoute(new LocalizationRoute("Welcome", new RouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new RouteValueDictionary(), new RouteValueDictionary(), null, string.Empty)); (new ShimRoute(localizationRouteNeutral)).GetVirtualPathRequestContextRouteValueDictionary = (requestContext, values) => new VirtualPathData(localizationRouteNeutral, "Welcome"); routes[string.Empty] = localizationRouteNeutral; ShimLocalizationRoute localizationRouteEnglish = new ShimLocalizationRoute(new LocalizationRoute("Welcome", new RouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new RouteValueDictionary(), new RouteValueDictionary(), null, "en")); (new ShimRoute(localizationRouteEnglish)).GetVirtualPathRequestContextRouteValueDictionary = (requestContext, values) => new VirtualPathData(localizationRouteEnglish, "Welcome"); routes["en"] = localizationRouteEnglish; ShimLocalizationRoute localizationRouteGerman = new ShimLocalizationRoute(new LocalizationRoute("Willkommen", new RouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new RouteValueDictionary(), new RouteValueDictionary(), null, "de")); routes["de"] = localizationRouteGerman; (new ShimRoute(localizationRouteGerman)).GetVirtualPathRequestContextRouteValueDictionary = (requestContext, values) => new VirtualPathData(localizationRouteGerman, "Willkommen"); // Act VirtualPathData virtualPathData = localizationCollectionRoute.GetVirtualPath(null, new RouteValueDictionary() { { "Culture", "es" } }); // Assert Assert.AreEqual(virtualPathData.Route, localizationRouteNeutral.Instance); } }
public void GetVirtualPath_OverriddenCultureByRouteDictionaryThatDoesNotExist_ReturnsNeutralLocalizationRoute() { using (ShimsContext.Create()) { // Arrange Thread.CurrentThread.CurrentUICulture = new CultureInfo("en"); LocalizationCollectionRoute localizationCollectionRoute = new LocalizationCollectionRoute(new Route("Home", new RouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new RouteValueDictionary(), new RouteValueDictionary(), null)); PrivateObject privateObject = new PrivateObject(localizationCollectionRoute); IDictionary <string, LocalizationRoute> routes = (IDictionary <string, LocalizationRoute>)privateObject.GetProperty("LocalizedRoutesContainer"); ShimLocalizationRoute localizationRouteNeutral = new ShimLocalizationRoute(new LocalizationRoute("Welcome", new RouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new RouteValueDictionary(), new RouteValueDictionary(), null, string.Empty)); (new ShimRoute(localizationRouteNeutral)).GetVirtualPathRequestContextRouteValueDictionary = (requestContext, values) => new VirtualPathData(localizationRouteNeutral, "Welcome"); routes[string.Empty] = localizationRouteNeutral; ShimLocalizationRoute localizationRouteEnglish = new ShimLocalizationRoute(new LocalizationRoute("Welcome", new RouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new RouteValueDictionary(), new RouteValueDictionary(), null, "en")); (new ShimRoute(localizationRouteEnglish)).GetVirtualPathRequestContextRouteValueDictionary = (requestContext, values) => new VirtualPathData(localizationRouteEnglish, "Welcome"); routes["en"] = localizationRouteEnglish; ShimLocalizationRoute localizationRouteGerman = new ShimLocalizationRoute(new LocalizationRoute("Willkommen", new RouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new RouteValueDictionary(), new RouteValueDictionary(), null, "de")); routes["de"] = localizationRouteGerman; (new ShimRoute(localizationRouteGerman)).GetVirtualPathRequestContextRouteValueDictionary = (requestContext, values) => new VirtualPathData(localizationRouteGerman, "Willkommen"); // Act VirtualPathData virtualPathData = localizationCollectionRoute.GetVirtualPath(null, new RouteValueDictionary() { { "Culture", "es" } }); // Assert Assert.AreEqual(virtualPathData.Route, localizationRouteNeutral.Instance); } }
public void GetVirtualPath_TranslationExistsForThreadCulture_ReturnsTranslatedLocalizationRoute() { using (ShimsContext.Create()) { // Arrange Thread.CurrentThread.CurrentUICulture = new CultureInfo("en"); LocalizationCollectionRoute localizationCollectionRoute = new LocalizationCollectionRoute(new HttpRoute("Home", new HttpRouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new HttpRouteValueDictionary(), new HttpRouteValueDictionary(), null)); PrivateObject privateObject = new PrivateObject(localizationCollectionRoute); IDictionary <string, LocalizationRoute> routes = (IDictionary <string, LocalizationRoute>)privateObject.GetProperty("LocalizedRoutesContainer"); ShimLocalizationRoute localizationRouteNeutral = new ShimLocalizationRoute(new LocalizationRoute("Welcome", new HttpRouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new HttpRouteValueDictionary(), new HttpRouteValueDictionary(), null, string.Empty)); (new ShimHttpRoute(localizationRouteNeutral)).GetVirtualPathHttpRequestMessageIDictionaryOfStringObject = (requestContext, values) => new HttpVirtualPathData(localizationRouteNeutral.Instance, "Welcome"); routes[string.Empty] = localizationRouteNeutral; ShimLocalizationRoute localizationRouteEnglish = new ShimLocalizationRoute(new LocalizationRoute("Welcome", new HttpRouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new HttpRouteValueDictionary(), new HttpRouteValueDictionary(), null, "en")); (new ShimHttpRoute(localizationRouteEnglish)).GetVirtualPathHttpRequestMessageIDictionaryOfStringObject = (requestContext, values) => new HttpVirtualPathData(localizationRouteEnglish.Instance, "Welcome"); routes["en"] = localizationRouteEnglish; ShimLocalizationRoute localizationRouteGerman = new ShimLocalizationRoute(new LocalizationRoute("Willkommen", new HttpRouteValueDictionary() { { "controller", "Home" }, { "action", "Index" } }, new HttpRouteValueDictionary(), new HttpRouteValueDictionary(), null, "de")); routes["de"] = localizationRouteGerman; (new ShimHttpRoute(localizationRouteGerman)).GetVirtualPathHttpRequestMessageIDictionaryOfStringObject = (requestContext, values) => new HttpVirtualPathData(localizationRouteGerman.Instance, "Willkommen"); // Act IHttpVirtualPathData virtualPathData = localizationCollectionRoute.GetVirtualPath(null, new HttpRouteValueDictionary()); // Assert Assert.AreEqual(virtualPathData.Route, localizationRouteEnglish.Instance); } }