internal UnitTestException(string message, TestResults results, Exception innerException) : base(message, innerException) { testResults = results; }
public static TestResults doUnitTest(String path) { Assembly a = Assembly.GetCallingAssembly(); Type[] types = a.GetTypes(); SortedList<int, Type> unitTestTypes = new SortedList<int, Type>(); TestResults results; if (current != null && last_string == path) { results = current; } else results = new TestResults(path); foreach (Type t in types) { object[] atrs = t.GetCustomAttributes(typeof(UnitTest), false); foreach (UnitTest atr in atrs) { unitTestTypes.Add(atr.TestOrder, t); } } foreach (Type t in unitTestTypes.Values) { results.ReportMessage(""); testClass(t, results); } /* if (!results.success) { results.WriteToFile(); throw new UnitTestException("Tests failed!", results, null); } */ current = results; last_string = path; return results; }
private static void testClass(Type t, TestResults results) { MethodInfo info = null; try { foreach (MethodInfo method in t.GetMethods()) { info = method; object[] check = method.GetCustomAttributes(typeof(UnitTestMethod), false); if (check.Length > 0) { UnitTestHandler test = Delegate.CreateDelegate(typeof(UnitTestHandler), method) as UnitTestHandler; test(results); } } } catch (Exception e) { results.ReportError("Exception occured in method " + info.Name + ", in class " + t.Name + "." + "\n" + e.Message); } }
public static void TestClamp(TestResults results) { DirectionalClamp d = new DirectionalClamp(); results.ReportMessage("Begining test of Directional Clamp bitmask."); if (d.ClampedX || d.ClampedY || d.ClampedZ) { results.ReportError("Empty bitmask is not zero"); } else results.ReportMessage("Empty bitmask is zero"); results.ReportMessage("Starting test 1"); d.ClampedPositiveX = true; if (d.ClampedPositiveX) results.ReportMessage("Test 1 success. Clamp is reflexive."); else results.ReportError("Test 1 failure. Clamp is not reflexive."); d.NoClamp = true; if (d.ClampedX || d.ClampedY || d.ClampedZ) { results.ReportError("Empty bitmask is not zero"); } results.ReportMessage("Starting test 2"); d.ClampedZ = true; if (d.ClampedNegativeZ && d.ClampedPositiveZ) results.ReportMessage("Test 2 success. Dimentional/Polar\n options interoperate correctly."); else results.ReportError("Test 2 failure. Dimentional/Polar options do not interoperate"); }