public void TestPublicApi() { // Arrange string outputPath = Environment.CurrentDirectory; string outputFile = outputPath + Path.DirectorySeparatorChar + OutputFileName; // Act using (FileStream fs = new FileStream(outputFile, FileMode.Create)) { using (StreamWriter sw = new StreamWriter(fs)) { string assemblyPath = outputPath + Path.DirectorySeparatorChar + AssemblyName; Assert.True(File.Exists(assemblyPath), string.Format("{0} does not exist in current directory", assemblyPath)); PublicApiHelper.DumpPublicApi(sw, assemblyPath); } } string outputString = File.ReadAllText(outputFile); string baselineString = GetBaseLineString(); // Assert Assert.True(String.Compare(baselineString, outputString, StringComparison.Ordinal) == 0, String.Format("Base line file {1} and output file {2} do not match, please check.{0}" + "To update the baseline, please run:{0}{0}" + "copy /y \"{2}\" \"{1}\"", Environment.NewLine, BaseLineFileFolder + BaseLineFileName, outputFile)); }
public void TestPublicApi() { // Arrange string outputPath = Environment.CurrentDirectory; string outputFile = outputPath + Path.DirectorySeparatorChar + OutputFileName; // Act using (FileStream fs = new FileStream(outputFile, FileMode.Create)) { using (StreamWriter sw = new StreamWriter(fs)) { string assemblyPath = outputPath + Path.DirectorySeparatorChar + AssemblyName; Assert.True(File.Exists(assemblyPath), string.Format("{0} does not exist in current directory", assemblyPath)); PublicApiHelper.DumpPublicApi(sw, assemblyPath); } } string outputString = File.ReadAllText(outputFile); string baselineString = GetBaseLineString(); // Assert if (string.Compare(baselineString, outputString, StringComparison.Ordinal) != 0) { const int sliceSize = 128; var diffPoint = baselineString.Zip(outputString, (c1, c2) => c1 == c2).TakeWhile(b => b).Count(); var displayBaseline = baselineString.SliceCenter(diffPoint, sliceSize); var displayOutput = outputString.SliceCenter(diffPoint, sliceSize); Assert.True(false, string.Format("Base line file {1} and output file {2} do not match, please check.{0}" + "Baseline:{0}\"{3}\"{0}" + "Output: {0}\"{4}\"{0}{0}" + "To update the baseline, please run:{0}{0}" + "copy /y \"{2}\" \"{1}\"", Environment.NewLine, BaseLineFileFolder + BaseLineFileName, outputFile, displayBaseline, displayOutput)); } }