public TestEnvironment() { var writingSystemRepository = new TestLdmlInFolderWritingSystemRepository(_folder.Path); _testWritingSystemFactory = new TestWritingSystemFactory(); MockSetupModel = new Mock<WritingSystemSetupModel>(writingSystemRepository); SetDefinitionsInStore(new WritingSystemDefinition[] { }); }
public void Validate_NonSelfReferencingImport_Valid() { var ws = new WritingSystemDefinition("en-US"); ws.Collations.Add(new IcuRulesCollationDefinition("other") {IcuRules = "&B<t<<<T<s<<<S<e<<<E\r\n"}); var wsFactory = new TestWritingSystemFactory(); wsFactory.WritingSystems.Add(ws); var collation = new IcuRulesCollationDefinition("standard") { WritingSystemFactory = wsFactory, Imports = {new IcuCollationImport("en-US", "other")}, IcuRules = "&C<k<<<K<x<<<X<i<<<I\r\n" }; string message; Assert.That(collation.Validate(out message), Is.True); Assert.That(collation.CollationRules, Is.EqualTo("&B<t<<<T<s<<<S<e<<<E\r\n&C<k<<<K<x<<<X<i<<<I\r\n")); }
public void Validate_NonSelfReferencingImport_Valid() { var ws = new WritingSystemDefinition("en-US"); ws.Collations.Add(new IcuRulesCollationDefinition("other") { IcuRules = "&B<t<<<T<s<<<S<e<<<E\r\n" }); var wsFactory = new TestWritingSystemFactory(); wsFactory.WritingSystems.Add(ws); var collation = new IcuRulesCollationDefinition("standard") { WritingSystemFactory = wsFactory, Imports = { new IcuCollationImport("en-US", "other") }, IcuRules = "&C<k<<<K<x<<<X<i<<<I\r\n" }; string message; Assert.That(collation.Validate(out message), Is.True); Assert.That(collation.CollationRules, Is.EqualTo("&B<t<<<T<s<<<S<e<<<E\r\n&C<k<<<K<x<<<X<i<<<I\r\n")); }
public void Roundtrip_LdmlIcuCollationWithImports() { using (var environment = new TestEnvironment()) { const string icuRules = "&B<t<<<T<s<<<S<e<<<E\n\t\t\t\t&C<k<<<K<x<<<X<i<<<I\n\t\t\t\t&D<q<<<Q<r<<<R\n\t\t\t\t&G<o<<<O\n\t\t\t\t&W<h<<<H"; var cd = new IcuRulesCollationDefinition("standard") { Imports = {new IcuCollationImport("my", "standard")}, CollationRules = icuRules, IsValid = true }; var wsToLdml = new WritingSystemDefinition("aa", "Latn", "", ""); wsToLdml.Collations.Add(cd); var wsFactory = new TestWritingSystemFactory {WritingSystems = { new WritingSystemDefinition("my") { Collations = {new IcuRulesCollationDefinition("standard") {IcuRules = icuRules, CollationRules = icuRules, IsValid = true}} } }}; var ldmlAdaptor = new LdmlDataMapper(wsFactory); ldmlAdaptor.Write(environment.FilePath("test.ldml"), wsToLdml, null); XElement ldmlElem = XElement.Load(environment.FilePath("test.ldml")); XElement collationsElem = ldmlElem.Element("collations"); XElement defaultCollationElem = collationsElem.Element("defaultCollation"); XElement collationElem = collationsElem.Element("collation"); XElement crElem = collationElem.Element("cr"); XElement importElem = collationElem.Element("import"); Assert.That((string) defaultCollationElem, Is.EqualTo("standard")); Assert.That((string) collationElem.Attribute("type"), Is.EqualTo("standard")); Assert.That(crElem, Is.Null); Assert.That((string) importElem.Attribute("source"), Is.EqualTo("my")); Assert.That((string) importElem.Attribute("type"), Is.EqualTo("standard")); var wsFromLdml = new WritingSystemDefinition(); ldmlAdaptor.Read(environment.FilePath("test.ldml"), wsFromLdml); Assert.That(wsFromLdml.Collations.First().ValueEquals(cd)); Assert.That(wsFromLdml.DefaultCollation.ValueEquals(cd)); } }