public void OtherKnownWritingSystems_TokPisinDoesNotAlreadyExist_HasTokPisin()
        {
            var suggestor = new WritingSystemSuggestor();

            var existingWritingSystems = new List <WritingSystemDefinition>();

            Assert.That(suggestor.GetOtherLanguageSuggestions(existingWritingSystems).Any(ws => ws.Label == "Tok Pisin"), Is.True);
        }
        public void OtherKnownWritingSystems_TokPisinAlreadyExists_DoesNotHaveTokPisin()
        {
            var suggestor = new WritingSystemSuggestor(new TestWritingSystemFactory());

            var existingWritingSystems = new List <WritingSystemDefinition> {
                new WritingSystemDefinition("tpi")
            };

            Assert.That(suggestor.GetOtherLanguageSuggestions(existingWritingSystems).Any(ws => ws.Label == "Tok Pisin"), Is.False);
        }
        [Test]         // ok
        public void GetSuggestions_HasNormalAndIPA_DoesNotIncludeItemToCreateIPA()
        {
            var etr       = new WritingSystemDefinition("etr", string.Empty, string.Empty, string.Empty, "edo", false);
            var etrIpa    = new WritingSystemDefinition("etr", string.Empty, string.Empty, "fonipa", "edo", false);
            var list      = new List <WritingSystemDefinition>(new[] { etr, etrIpa });
            var suggestor = new WritingSystemSuggestor(new TestWritingSystemFactory());
            IEnumerable <IWritingSystemDefinitionSuggestion> suggestions = suggestor.GetSuggestions(etr, list);

            Assert.That(suggestions.Any(defn => defn is IpaSuggestion), Is.False);
        }
        [Test]         // ok
        public void GetSuggestions_HasNormalAndIPA_DoesNotIncludeItemToCreateIPA()
        {
            var etr         = new WritingSystemDefinition("etr", string.Empty, string.Empty, string.Empty, "edo", false);
            var etrIpa      = new WritingSystemDefinition("etr", string.Empty, string.Empty, "fonipa", "edo", false);
            var list        = new List <WritingSystemDefinition>(new[] { etr, etrIpa });
            var suggestor   = new WritingSystemSuggestor();
            var suggestions = suggestor.GetSuggestions(etr, list);

            Assert.IsFalse(suggestions.Any(defn => ((WritingSystemSuggestion)defn).TemplateDefinition.Variant == "fonipa"));
        }
        public void GetSuggestions_MajorWorlLanguage_SuggestsOnlyIfSuppressSuggesstionsForMajorWorldLanguagesIsFalse()
        {
            var english   = new WritingSystemDefinition("en", string.Empty, string.Empty, string.Empty, "eng", false);
            var list      = new List <WritingSystemDefinition>(new[] { english });
            var suggestor = new WritingSystemSuggestor(new TestWritingSystemFactory());

            suggestor.SuppressSuggestionsForMajorWorldLanguages = false;
            var suggestions = suggestor.GetSuggestions(english, list);

            Assert.That(suggestions.Any(defn => defn is IpaSuggestion), Is.True);

            suggestor.SuppressSuggestionsForMajorWorldLanguages = true;
            suggestions = suggestor.GetSuggestions(english, list);
            Assert.That(suggestions.Any(defn => defn is IpaSuggestion), Is.False);
        }
        public void GetSuggestions_MajorWorlLanguage_SuggestsOnlyIfSuppressSuggesstionsForMajorWorldLanguagesIsFalse()
        {
            var english   = new WritingSystemDefinition("en", string.Empty, string.Empty, string.Empty, "eng", false);
            var list      = new List <WritingSystemDefinition>(new[] { english });
            var suggestor = new WritingSystemSuggestor();

            suggestor.SuppressSuggestionsForMajorWorldLanguages = false;
            var suggestions = suggestor.GetSuggestions(english, list);

            Assert.IsTrue(suggestions.Any(defn => ((WritingSystemSuggestion)defn).TemplateDefinition.Variant == "fonipa"));

            suggestor.SuppressSuggestionsForMajorWorldLanguages = true;
            suggestions = suggestor.GetSuggestions(english, list);
            Assert.IsFalse(suggestions.Any(defn => ((WritingSystemSuggestion)defn).TemplateDefinition.Variant == "fonipa"));
        }
        public void GetSuggestions_HasNormalLacksIpa_IpaSuggestedWhichCopiesAllRelevantFields()
        {
            var etr = new WritingSystemDefinition("etr", string.Empty, "region", "variant", "edo", true)
            {
                DefaultFont = new FontDefinition("font"), DefaultFontSize = 33
            };
            var list        = new List <WritingSystemDefinition>(new[] { etr });
            var suggestor   = new WritingSystemSuggestor(new TestWritingSystemFactory());
            var suggestions = suggestor.GetSuggestions(etr, list);

            WritingSystemDefinition ipa = suggestions.First(defn => defn is IpaSuggestion).ShowDialogIfNeededAndGetDefinition();

            Assert.That(ipa.Language, Is.EqualTo(new LanguageSubtag("etr", "Edolo")));
            Assert.That(ipa.Variants, Is.EqualTo(new VariantSubtag[] { "fonipa" }));
            Assert.That(ipa.Region, Is.EqualTo((RegionSubtag)"region"));
            //Assert.AreEqual("arial unicode ms", ipa.DefaultFontName); this depends on what fonts are installed on the test system
            Assert.That(ipa.DefaultFontSize, Is.EqualTo(33));

            Assert.That(ipa.Keyboard.ToLower().Contains("ipa"), Is.True);
        }
        public void GetSuggestions_HasNormalLacksIpa_IpaSuggestedWhichCopiesAllRelevantFields()
        {
            var etr = new WritingSystemDefinition("etr", string.Empty, "region", "variant", "edo", true);

            etr.DefaultFontName = "font";
            etr.DefaultFontSize = 33;
            var list        = new List <WritingSystemDefinition>(new[] { etr });
            var suggestor   = new WritingSystemSuggestor();
            var suggestions = suggestor.GetSuggestions(etr, list);

            WritingSystemDefinition ipa = ((WritingSystemSuggestion)suggestions.First(defn => ((WritingSystemSuggestion)defn).TemplateDefinition.Script == "ipa")).TemplateDefinition;

            Assert.AreEqual("etr", ipa.Language);
            Assert.AreEqual("fonipa", ipa.Variant);
            Assert.AreEqual("Edolo", ipa.LanguageName);
            Assert.IsTrue(string.IsNullOrEmpty(ipa.NativeName));
            Assert.AreEqual("region", ipa.Region);
            //Assert.AreEqual("arial unicode ms", ipa.DefaultFontName); this depends on what fonts are installed on the test system
            Assert.AreEqual(33, ipa.DefaultFontSize);

            Assert.IsTrue(ipa.Keyboard.ToLower().Contains("ipa"));
        }
        public void OtherKnownWritingSystems_TokPisinDoesNotAlreadyExist_HasTokPisin()
        {
            var suggestor = new WritingSystemSuggestor(new TestWritingSystemFactory());

            Assert.That(suggestor.GetOtherLanguageSuggestions(Enumerable.Empty <WritingSystemDefinition>()).Any(ws => ws.Label == "Tok Pisin"), Is.True);
        }