Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
            }
        }