public void OneItemInCollectionRemains() { var collData = new XElement("CollectionProperty", new XElement("objsur", new XAttribute("guid", "c1ecf889-e382-11de-8a39-0800200c9a66"))); DataSortingService.SortCollectionProperties(collData); Assert.AreEqual("CollectionProperty", collData.Name.LocalName); Assert.AreEqual(1, collData.Elements().Count()); Assert.AreEqual("c1ecf889-e382-11de-8a39-0800200c9a66", collData.Element("objsur").Attribute("guid").Value); }
public void OneItemInMultiRemains() { var multiSomethingData = new XElement("MultiSomething", new XElement("AStr", new XAttribute("ws", "en"))); DataSortingService.SortMultiSomethingProperty(multiSomethingData); Assert.AreEqual("MultiSomething", multiSomethingData.Name.LocalName); Assert.AreEqual(1, multiSomethingData.Elements().Count()); Assert.AreEqual("en", multiSomethingData.Element("AStr").Attribute("ws").Value); }
public void MultiSomethingPropertyIsSorted() { var multiSomethingData = new XElement("MultiSomething", new XElement("AStr", new XAttribute("ws", "es")), new XElement("AStr", new XAttribute("ws", "en"))); DataSortingService.SortMultiSomethingProperty(multiSomethingData); Assert.AreEqual("MultiSomething", multiSomethingData.Name.LocalName); Assert.AreEqual(2, multiSomethingData.Elements().Count()); Assert.AreEqual("en", multiSomethingData.Elements().ElementAt(0).Attribute("ws").Value); Assert.AreEqual("es", multiSomethingData.Elements().ElementAt(1).Attribute("ws").Value); }
public void CollectionPropertyIsSorted() { var collData = new XElement("CollectionProperty", new XElement("objsur", new XAttribute("guid", "c1ecf88b-e382-11de-8a39-0800200c9a66")), new XElement("objsur", new XAttribute("guid", "c1ecf88a-e382-11de-8a39-0800200c9a66"))); DataSortingService.SortCollectionProperties(collData); Assert.AreEqual("CollectionProperty", collData.Name.LocalName); Assert.AreEqual(2, collData.Elements().Count()); Assert.AreEqual("c1ecf88a-e382-11de-8a39-0800200c9a66", collData.Elements().ElementAt(0).Attribute("guid").Value); Assert.AreEqual("c1ecf88b-e382-11de-8a39-0800200c9a66", collData.Elements().ElementAt(1).Attribute("guid").Value); }
public void AttributesAreSorted() { var root = new XElement("outer", new XAttribute("outerB", "outerBData"), new XAttribute("outera", "outerAData"), new XElement("inner", new XAttribute("innerB", "innerBData"), new XAttribute("innerA", "innerAData"))); DataSortingService.SortAttributes(root); Assert.AreEqual("outer", root.Name.LocalName); Assert.AreEqual(1, root.Elements().Count()); Assert.AreEqual("outerAData", root.Attributes().ElementAt(0).Value); Assert.AreEqual("outerBData", root.Attributes().ElementAt(1).Value); Assert.AreEqual("innerAData", root.Element("inner").Attributes().ElementAt(0).Value); Assert.AreEqual("innerBData", root.Element("inner").Attributes().ElementAt(1).Value); }
public void SortEntireFile() { const string rt = @"<?xml version='1.0' encoding='utf-8'?> <languageproject version='7000037'> <AdditionalFields> <CustomField class='WfiWordform' name='Certified' type='Boolean' /> <CustomField class='LexEntry' destclass='7' listRoot='53241fd4-72ae-4082-af55-6b659657083c' name='Tone' type='RC' /> </AdditionalFields> <rt guid='c1ecf88d-e382-11de-8a39-0800200c9a66' class='WfiWordform' /> <rt guid='c1ecf88c-e382-11de-8a39-0800200c9a66' class='LexEntry' /> </languageproject>"; var tempInputPathname = Path.GetTempFileName(); var tempOutputPathname = Path.GetTempFileName(); File.WriteAllText(tempInputPathname, rt); try { using (var writer = XmlWriter.Create(tempOutputPathname)) { writer.WriteStartElement("languageproject"); DataSortingService.SortEntireFile(((IFwMetaDataCacheManagedInternal)m_mdc).GetSortableProperties(), writer, tempInputPathname); writer.WriteEndElement(); writer.Flush(); writer.Close(); } var doc = XDocument.Load(tempOutputPathname); var rtElement = doc.Root; Assert.AreEqual(3, rtElement.Elements().Count()); var sortedProp = rtElement.Elements().ElementAt(0); Assert.AreEqual("LexEntry", sortedProp.Element("CustomField").Attribute("class").Value); // Make sure SortCustomPropertiesRecord was called. sortedProp = rtElement.Elements().ElementAt(1); Assert.AreEqual("c1ecf88c-e382-11de-8a39-0800200c9a66", sortedProp.Attribute("guid").Value); // Make sure SortMainElement was called. } finally { File.Delete(tempInputPathname); File.Delete(tempOutputPathname); } }
public void CustomPropertiesAreSorted() { const string sortedCustomData = @"<AdditionalFields> <CustomField type='Boolean' name='Certified' class='WfiWordform' /> <CustomField destclass='7' listRoot='53241fd4-72ae-4082-af55-6b659657083c' name='Tone' type='RC' class='LexEntry' /> <CustomField wsSelector='-2' type='String' name='Paradigm' class='LexEntry' /> </AdditionalFields>"; var sortedCustomDataElement = DataSortingService.SortCustomPropertiesRecord(sortedCustomData); Assert.AreEqual("AdditionalFields", sortedCustomDataElement.Name.LocalName); Assert.AreEqual(3, sortedCustomDataElement.Elements().Count()); var customData = sortedCustomDataElement.Elements().ElementAt(0); CheckAttributes(customData, new List <string> { "class", "name", "type", "wsSelector" }, new List <string> { "LexEntry", "Paradigm", "String", "-2" }); customData = sortedCustomDataElement.Elements().ElementAt(1); CheckAttributes(customData, new List <string> { "class", "destclass", "listRoot", "name", "type" }, new List <string> { "LexEntry", "7", "53241fd4-72ae-4082-af55-6b659657083c", "Tone", "RC" }); customData = sortedCustomDataElement.Elements().ElementAt(2); CheckAttributes(customData, new List <string> { "class", "name", "type" }, new List <string> { "WfiWordform", "Certified", "Boolean" }); }
public void SortMainElement() { const string rt = @"<rt ownerguid='fe832a87-4846-4895-9c7e-98c5da0c84ba' class='CmPossibilityList' guid='fb5e83e5-6576-455d-aba0-0b7a722b9b5d'> <Possibilities> <objsur guid='d3c9c406-3ed6-4529-8807-db0864d2df07' t='o' /> <objsur guid='595daad3-9b65-43dc-b60c-705544921559' t='o' /> </Possibilities> <Custom name='CustomProp' /> <DateCreated val='1995-1-25 13:22:29.0' /> <Abbreviation> <AUni ws='es'>Categorías Gramáticas</AUni> <AUni ws='en'>Parts Of Speech</AUni> </Abbreviation> </rt>"; var sortableProperties = new Dictionary <string, Dictionary <string, HashSet <string> > >(); var pl = new Dictionary <string, HashSet <string> >(); sortableProperties.Add("CmPossibilityList", pl); var hs = new HashSet <string> { "Possibilities" }; pl.Add("Collections", hs); hs = new HashSet <string> { "Abbreviation" }; pl.Add("MultiAlt", hs); //var tempInputPathname = Path.GetTempFileName(); //var tempOutputPathname = Path.GetTempFileName(); //File.WriteAllText(tempInputPathname, rt); //try //{ // using (var writer = XmlWriter.Create(tempOutputPathname)) // { var rtElement = DataSortingService.SortMainElement(sortableProperties, rt); // writer.Flush(); // writer.Close(); // } // var doc = XDocument.Load(tempOutputPathname); Assert.AreEqual("class", rtElement.Attributes().ElementAt(0).Name.LocalName); Assert.AreEqual("guid", rtElement.Attributes().ElementAt(1).Name.LocalName); Assert.AreEqual("ownerguid", rtElement.Attributes().ElementAt(2).Name.LocalName); Assert.AreEqual(4, rtElement.Elements().Count()); var sortedProp = rtElement.Elements().ElementAt(0); Assert.AreEqual("en", sortedProp.Element("AUni").Attribute("ws").Value); // Make sure SortMainElement called mutli sorter. Assert.AreEqual("Abbreviation", sortedProp.Name.LocalName); Assert.AreEqual("Custom", rtElement.Elements().ElementAt(1).Name.LocalName); Assert.AreEqual("DateCreated", rtElement.Elements().ElementAt(2).Name.LocalName); sortedProp = rtElement.Elements().ElementAt(3); Assert.AreEqual("595daad3-9b65-43dc-b60c-705544921559", sortedProp.Element("objsur").Attribute("guid").Value); // Make sure SortMainElement called coll sorter. Assert.AreEqual("Possibilities", sortedProp.Name.LocalName); //} //finally //{ // //File.Delete(tempInputPathname); // File.Delete(tempOutputPathname); //} }