Example #1
0
        public void Test03_TranslateRandomKeyTest()
        {
            LoadTranslationsIfNotLoaded();

            //English should have the complete list
            int    total       = Translations.GetLanguageDictionaries(Languages.English).Count;
            Random rand        = new Random();
            int    randomEntry = rand.Next(0, total - 1);

            //get the key based on int index
            string key = Translations.GetLanguageDictionaries(Languages.English).Keys.ElementAt(randomEntry);

            //do it 100 times or so to ensure randomness
            for (int i = 0; i < 99; i++)
            {
                //loop to ensure we get keys and the entry isn't TODO
                while (!ValidEntryExistsInAll(key))
                {
                    randomEntry = rand.Next(0, total - 1);
                    key         = Translations.GetLanguageDictionaries(Languages.English).Keys.ElementAt(randomEntry);
                }

                //make sure the random key returned a valid value
                foreach (Languages lang in Translations.SupportedLanguages)
                {
                    Translations.SetLanguage(lang);
                    string result = Translations.GetTranslatedString(key);
                    Assert.IsFalse(string.IsNullOrWhiteSpace(result));
                }
            }
        }
Example #2
0
        public void Test02_NoEnglishTODOTest()
        {
            LoadTranslationsIfNotLoaded();

            //ensure that every English entry is not null, empty, whitespace, or TODO
            //English is the default language in case of errors
            foreach (string key in Translations.GetLanguageDictionaries(Languages.English).Keys)
            {
                Assert.IsFalse(string.IsNullOrWhiteSpace(Translations.GetLanguageDictionaries(Languages.English)[key]));
                Assert.IsFalse(Translations.GetLanguageDictionaries(Languages.English)[key].Equals(Translations.TranslationNeeded));
            }
        }
Example #3
0
        public void Test04_TODOKeyReturnsEnglishTest()
        {
            LoadTranslationsIfNotLoaded();

            //in the event that a language has a TODO key (not translated yet), make sure that the returned item is English
            string    key  = string.Empty;
            Languages lang = Languages.English;

            //check for each key in the English dictionary
            foreach (string key_ in Translations.GetLanguageDictionaries(Languages.English).Keys)
            {
                //for each key, check the other language dictionaries
                foreach (Languages lang_ in Translations.SupportedLanguages)
                {
                    if (lang_ == Languages.English)
                    {
                        continue;
                    }

                    if (Translations.Exists(key_, lang_) && Translations.GetLanguageDictionaries(lang_)[key_].Equals(Translations.TranslationNeeded))
                    {
                        key  = key_;
                        lang = lang_;
                        break;
                    }
                }
                if (!string.IsNullOrEmpty(key))
                {
                    break;
                }
            }

            //if key is still blank, then we have no TODO translations. Which is a good thing i guess
            if (string.IsNullOrEmpty(key))
            {
                return;
            }

            //set the language to the one with the TODO, and ensure that the English phrase is returned
            Translations.SetLanguage(lang);
            Assert.AreEqual(Translations.GetLanguageDictionaries(Languages.English)[key], Translations.GetTranslatedString(key));
        }