public void GetOrderedParametersTest() { string defaultCulture = LocalizationRouteDataHandler.DefaultCulture; LocalizationRouteDataHandler.AddControllerRouteData("Test", defaultCulture, "/Test"); LocalizationRouteDataHandler.AddActionRouteData("Test", "TestAction", defaultCulture, "/TestAction", "Test Action", new List <string>() { "param" }); LocalizationRouteDataHandler.AddActionRouteData("Test", "TestAction2", defaultCulture, "/TestAction2", "Test Action2", new List <string>() { "param", "param2" }); List <TestInputExpected> inputsAndExpectations = new List <TestInputExpected>() { // Test with no routevalues so will not find any parameter routes new TestInputExpected(new TestActionControllerData() { Action = "TestAction", Controller = "Test", RouteValues = new Dictionary <string, string>() }, ""), new TestInputExpected(new TestActionControllerData("TeST", "TestACTIon", new Dictionary <string, string>() { { "param", "1337" } }), "/1337"), new TestInputExpected(new TestActionControllerData("Test", "TestAction2", new Dictionary <string, string>() { { "param", "1" }, { "param2", "2" } }), "/1/2"), new TestInputExpected(new TestActionControllerData("Test", "TestAction2", new Dictionary <string, string>() { { "param", "1" } }), "/1"), // Fails new TestInputExpected(new TestActionControllerData("Fail", "TestAction"), ""), new TestInputExpected(new TestActionControllerData("Test", "FailAction"), ""), // Testing incorrect parameters from route data new TestInputExpected(new TestActionControllerData("Test", "TestAction2", new Dictionary <string, string>() { { "fail1", "1" }, { "param2", "2" } }), "") }; foreach (TestInputExpected test in inputsAndExpectations) { TestActionControllerData input = test.Input as TestActionControllerData; string expected = test.Expected as string; string culture = LocalizationRouteDataHandler.GetOrderedParameters(input.Controller, input.Action, input.RouteValues); Assert.AreEqual(expected, culture); } }
public void GetCultureFromUrlTest() { string defaultCulture = LocalizationRouteDataHandler.DefaultCulture; List <TestInputExpected> inputsAndExpectations = new List <TestInputExpected>() { new TestInputExpected("/moo", defaultCulture), new TestInputExpected("/sv/moo", "sv"), new TestInputExpected("/fi/", "fi"), // Failing tests new TestInputExpected("/fi", defaultCulture), new TestInputExpected("/sv_Sv", defaultCulture), new TestInputExpected("", defaultCulture), new TestInputExpected("/", defaultCulture) }; foreach (TestInputExpected test in inputsAndExpectations) { string input = test.Input as string; string expected = test.Expected as string; string culture = LocalizationRouteDataHandler.GetCultureFromUrl(input); Assert.AreEqual(expected, culture); } }
public void GetUrlTest() { string defaultCulture = LocalizationRouteDataHandler.DefaultCulture; // Controllers LocalizationRouteDataHandler.AddControllerRouteData("Home", defaultCulture, "Home"); LocalizationRouteDataHandler.AddControllerRouteData("Home", "fi", "fi/Koti"); LocalizationRouteDataHandler.AddControllerRouteData("Home", "sv", "sv/hem"); LocalizationRouteDataHandler.AddControllerRouteData("Test", defaultCulture, "Test"); LocalizationRouteDataHandler.AddControllerRouteData("Test", "fi", "fi/Testi"); LocalizationRouteDataHandler.AddControllerRouteData("Test", "sv", "sv/Test"); // Actions LocalizationRouteDataHandler.AddActionRouteData("Home", "Index", defaultCulture, "", "Index", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Home", "Index", "sv", "", "Index", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Home", "About", defaultCulture, "about", "About", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Home", "About", "fi", "meistä", "Meistä", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Home", "About", "sv", "Om", "Om", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Test", "Index", defaultCulture, "", "", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Test", "Index", "fi", "", "Testi", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Test", "Index", "sv", "", "Test", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Test", "TestAction", defaultCulture, "testaction", "Test Action", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Test", "TestAction", "fi", "TestiToiminta", "Testi Toiminta", new List <string>()); LocalizationRouteDataHandler.AddActionRouteData("Test", "TestAction", "sv", "TestHandling", "Testi Handling", new List <string>()); List <TestInputExpected> inputsAndExpectations = new List <TestInputExpected>() { // Default actions new TestInputExpected(new TestActionControllerData("home", "index", null, defaultCulture), new LocalizationUrlResult() { Url = "/", LinkName = "" }), new TestInputExpected(new TestActionControllerData("hOme", "index", null, "fi"), new LocalizationUrlResult() { Url = "/fi", LinkName = "Index" }), new TestInputExpected(new TestActionControllerData("hoMe", "INdex", null, "sv"), new LocalizationUrlResult() { Url = "/sv", LinkName = "Index" }), // About actions new TestInputExpected(new TestActionControllerData("home", "about", null, defaultCulture), new LocalizationUrlResult() { Url = "/Home/about", LinkName = "" }), new TestInputExpected(new TestActionControllerData("hOme", "about", null, "fi"), new LocalizationUrlResult() { Url = "/fi/Koti/meistä", LinkName = "Meistä" }), new TestInputExpected(new TestActionControllerData("hoMe", "about", null, "sv"), new LocalizationUrlResult() { Url = "/sv/hem/Om", LinkName = "Om" }), //// Test actions //new TestInputExpected(new TestActionControllerData("test", "index"), new LocalizedUrlResult() { Url = "/Test", LinkName = "" }), new TestInputExpected(new TestActionControllerData("test", "inDex", null, "fi"), new LocalizationUrlResult() { Url = "/fi/Testi", LinkName = "Testi" }), new TestInputExpected(new TestActionControllerData("test", "index", null, "sv"), new LocalizationUrlResult() { Url = "/sv/Test", LinkName = "Test" }), // Test actions new TestInputExpected(new TestActionControllerData("tESt", "teSTAction"), new LocalizationUrlResult() { Url = "/Test/testaction", LinkName = "" }), new TestInputExpected(new TestActionControllerData("test", "testAction", null, "fi"), new LocalizationUrlResult() { Url = "/fi/Testi/TestiToiminta", LinkName = "Testi Toiminta" }), new TestInputExpected(new TestActionControllerData("teST", "testActIOn", null, "sv"), new LocalizationUrlResult() { Url = "/sv/Test/TestHandling", LinkName = "Testi Handling" }), // Fails }; List <TestActionControllerData> throwingTests = new List <TestActionControllerData>() { // Invalid controller new TestActionControllerData("homez", "index", null, defaultCulture), // Invalid action new TestActionControllerData("home", "notindex", null, defaultCulture) }; foreach (var test in inputsAndExpectations) { var input = test.Input as TestActionControllerData; LocalizationUrlResult expected = (LocalizationUrlResult)test.Expected; var result = LocalizationRouteDataHandler.GetUrl(input.Controller, input.Action, input.Culture); Assert.AreEqual(expected.Url, result.Url); Assert.AreEqual(expected.LinkName, result.LinkName, String.Format("For {0}/{1} {2}", input.Controller, input.Action, input.Culture)); } foreach (var test in throwingTests) { Assert.ThrowsException <ArgumentException>(() => LocalizationRouteDataHandler.GetUrl(test.Controller, test.Action, test.Culture)); } }