コード例 #1
0
ファイル: DiffCsvColumn.cs プロジェクト: yangmaomao86/arcade
 public static ReadOnlyCollection <IDiffCsvColumn> CreateStandardColumns(DiffConfiguration diffConfiguration)
 {
     return(new ReadOnlyCollection <IDiffCsvColumn>(new IDiffCsvColumn[]
     {
         new DiffIdCsvColumn(diffConfiguration),
         new DiffKindCsvColumn(diffConfiguration),
         new DiffSubKindCsvColumn(diffConfiguration),
         new DiffStaticCsvColumn(diffConfiguration),
         new DiffVirtualityCsvColumn(diffConfiguration),
         new DiffOverrideCsvColumn(diffConfiguration),
         new DiffUnsafeCsvColumn(diffConfiguration),
         new DiffObsoletionCsvColumn(diffConfiguration),
         new DiffInOldCsvColumn(diffConfiguration),
         new DiffInNewCsvColumn(diffConfiguration),
         new DiffDifferenceCsvColumn(diffConfiguration),
         new DiffOldAssemblyCsvColumn(diffConfiguration),
         new DiffNewAssemblyCsvColumn(diffConfiguration),
         new DiffNamespaceCsvColumn(diffConfiguration),
         new DiffTypeCsvColumn(diffConfiguration),
         new DiffMemberCsvColumn(diffConfiguration),
         new DiffVisibiliyCsvColumn(diffConfiguration),
         new DiffTypeIdCsvColumn(diffConfiguration),
         new DiffTypeIsExposedCsvColumn(diffConfiguration),
         new DiffReturnTypeCsvColumn(diffConfiguration),
         new DiffTokensCsvColumn(diffConfiguration)
     }));
 }
コード例 #2
0
        private void PerformAssertion(string control, string test, bool assertion,
                                      DiffConfiguration xmlUnitConfiguration)
        {
            XmlDiff diff = new XmlDiff(new XmlInput(control), new XmlInput(test),
                                       xmlUnitConfiguration);

            PerformAssertion(diff, assertion);
        }
コード例 #3
0
        public DiffTokensCsvColumn(DiffConfiguration diffConfiguration)
            : base(diffConfiguration)
        {
            var stringWriter    = new StringWriter();
            var writer          = new TextSyntaxWriter(stringWriter);
            var mappingSettings = DiffEngine.GetMappingSettings(diffConfiguration);

            _diffWriter = new DiffCSharpWriter(writer, mappingSettings);
        }
コード例 #4
0
        public void CompareExpectedXMLs()
        {
            Dictionary <string, string> expected = new Dictionary <string, string>();
            Dictionary <string, string> actual   = new Dictionary <string, string>();

            RunReport(mValidTrxFile);

            XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(new NameTable());

            xmlNamespaceManager.AddNamespace("prefix", "urn:model.allure.qatools.yandex.ru");

            DiffConfiguration diffConfiguration = new DiffConfiguration(String.Empty, false, WhitespaceHandling.None, true);

            FillCategoryToXmlMap("sample-output", expected);
            FillCategoryToXmlMap(mTargetDir, actual);

            if (expected.Keys.Count != actual.Keys.Count)
            {
                Assert.Fail("Expected {0} categories but found {1}.", expected.Keys.Count, actual.Keys.Count);
            }

            foreach (string category in actual.Keys)
            {
                if (!expected.ContainsKey(category))
                {
                    Assert.Fail("The category " + category + " was not expected.");
                }

                string expectedFile = expected[category];
                string actualFile   = actual[category];

                string expectedFileText = File.ReadAllText(expectedFile);
                string actualFileText   = File.ReadAllText(actualFile);

                XmlInput control = new XmlInput(expectedFileText);
                XmlInput test    = new XmlInput(actualFileText);

                XmlDiff xmlDiff = new XmlDiff(control, test, diffConfiguration);

                DiffResult diffResult = xmlDiff.Compare();
                if (!diffResult.Identical)
                {
                    string failureMessage = String.Format("The expected file {0} was different from the actual file {1}", expectedFile, actualFile);
                    failureMessage += Environment.NewLine;
                    failureMessage += "Expected XML: ";
                    failureMessage += expectedFileText;
                    failureMessage += Environment.NewLine;
                    failureMessage += "Actual XML: ";
                    failureMessage += actualFileText;
                    failureMessage += Environment.NewLine;
                    failureMessage += "Difference: ";
                    failureMessage += diffResult.Difference;

                    Assert.Fail(failureMessage);
                }
            }
        }
コード例 #5
0
        public static bool AreXmlElementsEqual(XmlInput ours, XmlInput theirs)
        {
            // Must use 'config', or whitespace only differences will make the elements different.
            // cf. diffing changeset 240 and 241 in the Tok Pisin project for such whitespace differences.
            var config     = new DiffConfiguration(WhitespaceHandling.None);
            var diff       = new XmlDiff(ours, theirs, config);
            var diffResult = diff.Compare();

            return(diffResult == null || diffResult.Difference == null || !diffResult.Difference.MajorDifference);
        }
コード例 #6
0
        [Test] public void DefaultConfiguredWithGenericDescription()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration();

            Assert.AreEqual(DiffConfiguration.DEFAULT_DESCRIPTION,
                            diffConfiguration.Description);

            Assert.AreEqual(DiffConfiguration.DEFAULT_DESCRIPTION,
                            new XmlDiff("", "").OptionalDescription);
        }
コード例 #7
0
        [Test] public void DefaultConfiguredWithWhitespaceHandlingAll()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration();

            Assert.AreEqual(WhitespaceHandling.All, diffConfiguration.WhitespaceHandling);

            PerformAssertion(xmlWithoutWhitespace, xmlWithWhitespaceElement, false);
            PerformAssertion(xmlWithoutWhitespace, xmlWithoutWhitespaceElement, false);
            PerformAssertion(xmlWithoutWhitespace, xmlWithWhitespace, false);
            PerformAssertion(xmlWithoutWhitespaceElement, xmlWithWhitespaceElement, false);
        }
コード例 #8
0
 public void CanConfigureWhitespaceHandlingSignificant()
 {
     DiffConfiguration xmlUnitConfiguration =
         new DiffConfiguration (WhitespaceHandling.Significant);
     PerformAssertion(xmlWithoutWhitespace, xmlWithWhitespaceElement,
                      true, xmlUnitConfiguration);
     PerformAssertion(xmlWithoutWhitespace, xmlWithoutWhitespaceElement,
                      true, xmlUnitConfiguration);
     PerformAssertion(xmlWithoutWhitespace, xmlWithWhitespace,
                      true, xmlUnitConfiguration);
     PerformAssertion(xmlWithoutWhitespaceElement, xmlWithWhitespaceElement,
                      true, xmlUnitConfiguration);
 }
コード例 #9
0
        [Test] public void CanConfigureWhitespaceHandlingNone()
        {
            DiffConfiguration xmlUnitConfiguration =
                new DiffConfiguration(WhitespaceHandling.None);

            PerformAssertion(xmlWithoutWhitespace, xmlWithWhitespaceElement,
                             true, xmlUnitConfiguration);
            PerformAssertion(xmlWithoutWhitespace, xmlWithoutWhitespaceElement,
                             true, xmlUnitConfiguration);
            PerformAssertion(xmlWithoutWhitespace, xmlWithWhitespace,
                             true, xmlUnitConfiguration);
            PerformAssertion(xmlWithoutWhitespaceElement, xmlWithWhitespaceElement,
                             true, xmlUnitConfiguration);
        }
コード例 #10
0
        public void CanConfigureNotToUseValidatingParser()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration(false);
            Assert.AreEqual(false, diffConfiguration.UseValidatingParser);

            Stream controlFileStream = ValidatorTests.ValidFile;
            Stream testFileStream = ValidatorTests.InvalidFile;
            try {
                XmlDiff diff = new XmlDiff(new XmlInput(controlFileStream),
                                           new XmlInput(testFileStream),
                                           diffConfiguration);
                diff.Compare();
            } catch (XmlSchemaException e) {
                Assert.Fail("Unexpected validation failure: " + e.Message);
            } finally {
                controlFileStream.Close();
                testFileStream.Close();
            }
        }
コード例 #11
0
        public void DefaultConfiguredToUseValidatingParser()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration();
            Assert.AreEqual(DiffConfiguration.DEFAULT_USE_VALIDATING_PARSER,
                                   diffConfiguration.UseValidatingParser);

            Stream controlFileStream = ValidatorTests.ValidFile;
            Stream testFileStream = ValidatorTests.InvalidFile;
            try {
                XmlDiff diff = new XmlDiff(new StreamReader(controlFileStream),
                                           new StreamReader(testFileStream));
                diff.Compare();
                Assert.Fail("Expected validation failure");
            } catch (XmlSchemaException e) {
                string message = e.Message; // to prevent 'unused variable' compiler warning
            } finally {
                controlFileStream.Close();
                testFileStream.Close();
            }
        }
コード例 #12
0
        [Test] public void CanConfigureNotToUseValidatingParser()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration(false);

            Assert.AreEqual(false, diffConfiguration.UseValidatingParser);

            Stream controlFileStream = ValidatorTests.ValidFile;
            Stream testFileStream    = ValidatorTests.InvalidFile;

            try {
                XmlDiff diff = new XmlDiff(new XmlInput(controlFileStream),
                                           new XmlInput(testFileStream),
                                           diffConfiguration);
                diff.Compare();
            } catch (XmlSchemaException e) {
                Assert.Fail("Unexpected validation failure: " + e.Message);
            } finally {
                controlFileStream.Close();
                testFileStream.Close();
            }
        }
コード例 #13
0
        [Test] public void DefaultConfiguredToUseValidatingParser()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration();

            Assert.AreEqual(DiffConfiguration.DEFAULT_USE_VALIDATING_PARSER,
                            diffConfiguration.UseValidatingParser);

            Stream controlFileStream = ValidatorTests.ValidFile;
            Stream testFileStream    = ValidatorTests.InvalidFile;

            try {
                XmlDiff diff = new XmlDiff(new StreamReader(controlFileStream),
                                           new StreamReader(testFileStream));
                diff.Compare();
                Assert.Fail("Expected validation failure");
            } catch (XmlSchemaException e) {
                string message = e.Message; // to prevent 'unused variable' compiler warning
            } finally {
                controlFileStream.Close();
                testFileStream.Close();
            }
        }
コード例 #14
0
        public void CanConfigureNotToUseValidatingParser()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration(false);

            Assert.AreEqual(false, diffConfiguration.UseValidatingParser);

            FileStream controlFileStream = File.Open(VALID_FILE,
                                                     FileMode.Open, FileAccess.Read);
            FileStream testFileStream = File.Open(INVALID_FILE,
                                                  FileMode.Open, FileAccess.Read);

            try {
                XmlDiff diff = new XmlDiff(new XmlInput(controlFileStream),
                                           new XmlInput(testFileStream),
                                           diffConfiguration);
                diff.Compare();
            } catch (XmlSchemaException e) {
                Assert.Fail("Unexpected validation failure: " + e.Message);
            } finally {
                controlFileStream.Close();
                testFileStream.Close();
            }
        }
コード例 #15
0
        private void CheckXmlMapping(string hbm, params string[] stream)
        {
            NameTable nt = new NameTable();

            nt.Add("urn:nhibernate-mapping-2.2");
            var nsmgr = new XmlNamespaceManager(nt);

            nsmgr.AddNamespace("urn", "urn:nhibernate-mapping-2.2");
            XmlDocument doc = new XmlDocument(nt);

            doc.PreserveWhitespace = true;
            doc.LoadXml(internalStreams[stream[0]].ToString());
            XmlNode refChild = doc.SelectSingleNode("//urn:class", nsmgr);

            for (int i = 1; i < stream.Length; ++i)
            {
                XmlDocument docChild = new XmlDocument(nt);
                docChild.PreserveWhitespace = true;
                docChild.LoadXml(internalStreams[stream[i]].ToString());
                doc.SelectSingleNode("/urn:hibernate-mapping", nsmgr).AppendChild(doc.ImportNode(docChild.SelectSingleNode("//urn:class", nsmgr), true));
            }
            DiffConfiguration dc   = new DiffConfiguration("test", true, WhitespaceHandling.None, true);
            XmlDiff           diff = new XmlDiff(new XmlInput(doc.OuterXml)
                                                 , new XmlInput(ResourceHelper.GetResource(hbm))
                                                 , dc
                                                 );
            var res = diff.Compare();

            if (!res.Equal)
            {
                Console.WriteLine("Expected xml was:");
                Console.WriteLine(ResourceHelper.GetResource(hbm));
                Console.WriteLine("But was:");
                Console.WriteLine(doc.InnerXml);
            }
            Assert.IsTrue(res.Equal);
        }
コード例 #16
0
 public DiffOldAssemblyCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration, 0)
 {
 }
コード例 #17
0
 public DiffMemberCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #18
0
 protected DiffAssemblyCsvColumn(DiffConfiguration diffConfiguration, int index)
     : base(diffConfiguration)
 {
     _index = index;
 }
コード例 #19
0
 public DiffVirtualityCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #20
0
 public DiffStaticCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #21
0
        public void DefaultConfiguredWithGenericDescription()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration();
            Assert.AreEqual(DiffConfiguration.DEFAULT_DESCRIPTION,
                                   diffConfiguration.Description);

            Assert.AreEqual(DiffConfiguration.DEFAULT_DESCRIPTION,
                                   new XmlDiff("", "").OptionalDescription);
        }
コード例 #22
0
ファイル: DiffCsvColumn.cs プロジェクト: yangmaomao86/arcade
 protected DiffCsvColumn(DiffConfiguration diffConfiguration)
 {
     DiffConfiguration = diffConfiguration;
 }
コード例 #23
0
 public DiffTypeCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #24
0
 public DiffNewAssemblyCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration, 1)
 {
 }
コード例 #25
0
 public DiffOverrideCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #26
0
 public DiffKindCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #27
0
 public DiffTypeIsExposedCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #28
0
 public DiffDifferenceCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #29
0
 public DiffInNewCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #30
0
 public DiffNamespaceCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #31
0
 private void PerformAssertion(string control, string test, bool assertion, 
     DiffConfiguration xmlUnitConfiguration)
 {
     XmlDiff diff = new XmlDiff(new XmlInput(control), new XmlInput(test),
                                xmlUnitConfiguration);
     PerformAssertion(diff, assertion);
 }
コード例 #32
0
 public DiffVisibiliyCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #33
0
 public DiffUnsafeCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }
コード例 #34
0
        public void DefaultConfiguredWithWhitespaceHandlingAll()
        {
            DiffConfiguration diffConfiguration = new DiffConfiguration();
            Assert.AreEqual(WhitespaceHandling.All, diffConfiguration.WhitespaceHandling);

            PerformAssertion(xmlWithoutWhitespace, xmlWithWhitespaceElement, false);
            PerformAssertion(xmlWithoutWhitespace, xmlWithoutWhitespaceElement, false);
            PerformAssertion(xmlWithoutWhitespace, xmlWithWhitespace, false);
            PerformAssertion(xmlWithoutWhitespaceElement, xmlWithWhitespaceElement, false);
        }
コード例 #35
0
 public DiffObsoletionCsvColumn(DiffConfiguration diffConfiguration)
     : base(diffConfiguration)
 {
 }