/// <summary> /// Do a single test. /// </summary> /// <param name="testName">Test name is also the folder containing the test.</param> /// <param name="msg">Message to display if failure occurs.</param> protected void OneTest(string testName, string msg) { // Create input file name for test var inpFileName = Common.PathCombine(_inpPath, testName + ".css"); var ctp = new CssTreeParser(); ctp.Parse(inpFileName); var strResult = ctp.StringTree(); // Output result to disk var outFileName = Common.PathCombine(_outPath, testName + ".txt"); var sw = new StreamWriter(outFileName); sw.Write(strResult); sw.Close(); // Compare result to expected result var expFileName = Common.PathCombine(_expPath, testName + ".txt"); var sr = new StreamReader(expFileName); var strExpect = sr.ReadToEnd(); sr.Close(); Assert.AreEqual(strResult, strExpect, msg); if (ctp.Errors.Count != 0) { var strError = ctp.ErrorText(); var outErrorName = Common.PathCombine(_outPath, testName + "Err.txt"); var swe = new StreamWriter(outErrorName); swe.Write(strError); swe.Close(); var expErrorName = Common.PathCombine(_expPath, testName + "Err.txt"); var sre = new StreamReader(expErrorName); var strExpError = sre.ReadToEnd(); sre.Close(); var msgErr = msg + " in Error text"; Assert.AreEqual(strError, strExpError, msgErr); } else { Assert.AreEqual(File.Exists(testName + "Err.txt"), false, msg + " error not generated"); } }