public void TestDupKeyOnMigration() { var newMasterDoc = new XmlDocument(); string newMaster = Path.Combine(testPathMerge, "NewMaster.xml"); newMasterDoc.Load(newMaster); var userDoc = new XmlDocument(); string user = Path.Combine(testPathMerge, "User.xml"); userDoc.Load(user); string sourceFilePath = Path.Combine(testPathMerge, "LexSensePartsOutput.xml"); string outDirFilePath = Path.Combine(Path.GetTempPath(), "LexSensePartsOutput.xml"); if (File.Exists(outDirFilePath)) { File.Delete(outDirFilePath); } File.Copy(sourceFilePath, outDirFilePath); var outputDoc = new XmlDocument(); outputDoc.Load(outDirFilePath); var merger = new LayoutMerger(); XmlNode output = merger.Merge(newMasterDoc.DocumentElement, userDoc.DocumentElement, outputDoc, ""); const string checkValue1 = "layout[@class='LexSense' and @type='jtview' and @name='publishRootSub']/part[@ref='SemanticDomainsConfig' and @label='Semantic Domains' and @dup='1-2.0.0']"; AssertThatXmlIn.String(output.OuterXml).HasSpecifiedNumberOfMatchesForXpath(checkValue1, 1); const string checkValue2 = "layout[@class='LexSense' and @type='jtview' and @name='publishRootSub']/part[@ref='SemanticDomainsConfig' and @label='Semantic Domains (1)' and @dup='1-2.0.0-1']"; AssertThatXmlIn.String(output.OuterXml).HasSpecifiedNumberOfMatchesForXpath(checkValue2, 1); const string checkValue3 = "layout[@class='LexSense' and @type='jtview' and @name='publishRootSub']/part[@ref='SemanticDomainsConfig' and @label='Semantic Domains (2)' and @dup='1-2.0.0-2']"; AssertThatXmlIn.String(output.OuterXml).HasSpecifiedNumberOfMatchesForXpath(checkValue3, 1); }
void TestMerge(string newMaster, string user, string expectedOutput, string suffix) { var newMasterDoc = new XmlDocument(); newMasterDoc.LoadXml(newMaster); var userDoc = new XmlDocument(); userDoc.LoadXml(user); var outputDoc = new XmlDocument(); var merger = new LayoutMerger(); XmlNode output = merger.Merge(newMasterDoc.DocumentElement, userDoc.DocumentElement, outputDoc, suffix); var expectedDoc = new XmlDocument(); expectedDoc.LoadXml(expectedOutput); Assert.IsTrue(XmlUtils.NodesMatch(output, expectedDoc.DocumentElement)); }
void TestMerge(string current, string user, string expectedOutput) { XmlDocument currentDoc = new XmlDocument(); currentDoc.LoadXml(current); XmlDocument userDoc = new XmlDocument(); userDoc.LoadXml(user); XmlDocument outputDoc = new XmlDocument(); LayoutMerger merger = new LayoutMerger(); XmlNode output = merger.Merge(currentDoc.DocumentElement, userDoc.DocumentElement, outputDoc); XmlDocument expectedDoc = new XmlDocument(); expectedDoc.LoadXml(expectedOutput); Assert.IsTrue(XmlUtils.NodesMatch(output, expectedDoc.DocumentElement)); }