public void Validate_NonSelfReferencingImport_WritingSystemFactoryNotSet_NotValid()
		{
			var collation = new IcuRulesCollationDefinition("standard")
			{
				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.False);
			Assert.That(message, Is.EqualTo("Unable to import the other collation rules from en-US."));
		}
        public void Validate_NonSelfReferencingImport_WritingSystemFactoryNotSet_NotValid()
        {
            var collation = new IcuRulesCollationDefinition("standard")
            {
                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.False);
            Assert.That(message, Is.EqualTo("Unable to import the other collation rules from en-US."));
        }
		public void Validate_SelfReferencingImport_Valid()
		{
			var ws = new WritingSystemDefinition("en-US");
			ws.Collations.Add(new IcuRulesCollationDefinition("private") {IcuRules = "&B<t<<<T<s<<<S<e<<<E\r\n"});
			var collation = new IcuRulesCollationDefinition("standard")
			{
				OwningWritingSystemDefinition = ws,
				Imports = {new IcuCollationImport("en-US", "private")},
				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_ImportInvalidRules_NotValid()
		{
			var ws = new WritingSystemDefinition("en-US");
			ws.Collations.Add(new IcuRulesCollationDefinition("private") {IcuRules = "&&&B<t<<<T<s<<<S<e<<<E\r\n"});
			var collation = new IcuRulesCollationDefinition("standard")
			{
				OwningWritingSystemDefinition = ws,
				Imports = {new IcuCollationImport("en-US", "private")},
				IcuRules = "&C<k<<<K<x<<<X<i<<<I\r\n"
			};
			string message;
			Assert.That(collation.Validate(out message), Is.False);
			Assert.That(message, Is.EqualTo("Unable to import the private collation rules from en-US."));
		}
		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 ValidateSortRules_ValidOtherLanguage_IsTrue()
        {
            var enWS = new WritingSystemDefinition("en");
            var cd   = new IcuRulesCollationDefinition("standard")
            {
                IcuRules = "&b<a<c"
            };
            string message;

            Assert.That(cd.Validate(out message), Is.True);
            enWS.DefaultCollation = cd;
            _writingSystemRepository.WritingSystemFactory.WritingSystems.Add(enWS);

            _model.AddNew();
            _model.CurrentIso = "pt";
            _model.CurrentCollationRulesType = "OtherLanguage";
            _model.CurrentCollationRules     = "en";
            Assert.That(_model.ValidateCurrentSortRules(out message), Is.True);
        }
        public void Validate_ImportInvalidRules_NotValid()
        {
            var ws = new WritingSystemDefinition("en-US");

            ws.Collations.Add(new IcuRulesCollationDefinition("private")
            {
                IcuRules = "&&&B<t<<<T<s<<<S<e<<<E\r\n"
            });
            var collation = new IcuRulesCollationDefinition("standard")
            {
                OwningWritingSystemDefinition = ws,
                Imports  = { new IcuCollationImport("en-US", "private") },
                IcuRules = "&C<k<<<K<x<<<X<i<<<I\r\n"
            };
            string message;

            Assert.That(collation.Validate(out message), Is.False);
            Assert.That(message, Is.EqualTo("Unable to import the private collation rules from en-US."));
        }
        public void Validate_SelfReferencingImport_Valid()
        {
            var ws = new WritingSystemDefinition("en-US");

            ws.Collations.Add(new IcuRulesCollationDefinition("private")
            {
                IcuRules = "&B<t<<<T<s<<<S<e<<<E\r\n"
            });
            var collation = new IcuRulesCollationDefinition("standard")
            {
                OwningWritingSystemDefinition = ws,
                Imports  = { new IcuCollationImport("en-US", "private") },
                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"));
        }