Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [TestFixture]
- public class RouteTestFixture
- {
- [Test]
- public void Routes_should_not_change()
- {
- const string good = @"all existing routes go here (hint run the test first then copy output to here)";
- var goodRoutes = good.Split(Convert.ToChar(";"));
- var notFound = new List<string>();
- var ass = Assembly.GetAssembly(typeof (EventStatisticsController));
- var sb = new StringBuilder();
- foreach (var type in ass.GetTypes())
- {
- try
- {
- var members = type.GetMembers();
- for (int i = 0; i < members.Length; i++)
- {
- // Display the attribute if it is of type MyAttribute.
- if (members[i].IsDefined(typeof (RouteAttribute), false))
- {
- Object[] atts = members[i].GetCustomAttributes(typeof (RouteAttribute), false);
- for (int j = 0; j < atts.Length; j++)
- {
- var routeAttribute = (RouteAttribute)atts[j];
- string route = routeAttribute.Template + @"/" + routeAttribute.Name;
- Console.WriteLine(route);
- sb.Append(route + ";");
- if (!goodRoutes.Contains(route))
- {
- notFound.Add(route);
- }
- }
- }
- }
- }
- catch (Exception e)
- {
- Console.WriteLine(@"An exception occurred: {0}", e.Message);
- }
- }
- if (notFound.Any())
- {
- Console.WriteLine(@"-- MISSING ROUTES --");
- foreach (var nf in notFound)
- {
- Console.WriteLine(nf);
- }
- Assert.Fail("Missing Routes: " + notFound.Count);
- }
- else
- {
- Assert.True(true, "All routes matched");
- }
- Console.WriteLine(@"------------------------------------------------");
- Console.WriteLine(@"Match the following string for future tests");
- Console.WriteLine(sb.ToString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement