public void MissingCellTest()
        {
            string slongLang = @";en-US;ru-RU;it-IT
val1;v1_en; v1_ru; v1_it
val2;v2_en;
val3;v3_en; v3_ru; v3_it
";

            var c1 = new CultureInfo("ru");
            var c2 = new CultureInfo("en");
            var c3 = new CultureInfo("it");

            var loc = new LocalizationImplementation();

            loc.LoadLanguagesFromFile(slongLang);

            loc.CurrentCulture = c1;
            loc["val1"].ShouldBeEquivalentTo("v1_ru");
            loc["val2"].ShouldBeEquivalentTo(string.Empty);
            loc["val3"].ShouldBeEquivalentTo("v3_ru");

            loc.CurrentCulture = c2;
            loc["val1"].ShouldBeEquivalentTo("v1_en");
            loc["val2"].ShouldBeEquivalentTo("v2_en");
            loc["val3"].ShouldBeEquivalentTo("v3_en");

            loc.CurrentCulture = c3;
            loc["val1"].ShouldBeEquivalentTo("v1_it");
            loc["val2"].ShouldBeEquivalentTo(string.Empty);
            loc["val3"].ShouldBeEquivalentTo("v3_it");
        }
        public void LongCultureTest()
        {
            string slongLang = @"default:en-US;en-US;ru-RU
val1;v1_en; v1_ru
val2;v2_en; v2_ru";

            var c1 = new CultureInfo("ru");
            var c2 = new CultureInfo("en");
            var c3 = new CultureInfo("it");

            var loc = new LocalizationImplementation();

            loc.LoadLanguagesFromFile(slongLang);

            loc.CurrentCulture = c1;
            loc["val1"].ShouldBeEquivalentTo("v1_ru");
            loc["val2"].ShouldBeEquivalentTo("v2_ru");

            loc.CurrentCulture = c2;
            loc["val1"].ShouldBeEquivalentTo("v1_en");
            loc["val2"].ShouldBeEquivalentTo("v2_en");

            loc.CurrentCulture = c3;
            loc["val1"].ShouldBeEquivalentTo("v1_en");
            loc["val2"].ShouldBeEquivalentTo("v2_en");
        }
        public void CultureTest()
        {
            var c0 = new CultureInfo("en");
            var c1 = new CultureInfo("ru");

            var c02 = new CultureInfo("en-US");
            //var c1 = new CultureInfo("ru-RU");
            //var c2 = new CultureInfo("ar-AE");
            //var c3 = new CultureInfo("it-IT");
            //var c4 = new CultureInfo("es-ES");
            //var c5 = new CultureInfo("tr-TR");

            var loc = new LocalizationImplementation();

            loc.LoadLanguagesFromFile(csvLang);

            loc.Languages.Count.ShouldBeEquivalentTo(2);

            loc.Languages[0].DisplayName.ShouldBeEquivalentTo(c0.DisplayName);
            loc.Languages[0].EnglishName.ShouldBeEquivalentTo(c0.EnglishName);
            loc.Languages[0].NativeName.ShouldBeEquivalentTo(c0.NativeName);
            loc.Languages[0].Name.ShouldBeEquivalentTo(c0.Name);
            loc.Languages[0].TwoLetterName.ShouldBeEquivalentTo(c0.TwoLetterISOLanguageName);

            loc.Languages[1].DisplayName.ShouldBeEquivalentTo(c1.DisplayName);
            loc.Languages[1].EnglishName.ShouldBeEquivalentTo(c1.EnglishName);
            loc.Languages[1].NativeName.ShouldBeEquivalentTo(c1.NativeName);
            loc.Languages[1].Name.ShouldBeEquivalentTo(c1.Name);
            loc.Languages[0].Name.ShouldBeEquivalentTo(c0.TwoLetterISOLanguageName);
        }
        public void DynamicLoclaizeImplementEmptyFile()
        {
            var loc = new LocalizationImplementation();

            loc.LoadLanguagesFromFile(string.Empty);

            var test = loc.Dynamic.val1;

            Assert.IsNull(test);
        }
        public void LoclaizeImplementNewLanguage()
        {
            var loc = new LocalizationImplementation();

            loc.LoadLanguagesFromFile(csvLang);

            loc.CurrentCulture = new CultureInfo("en");
            loc["val1"].ShouldBeEquivalentTo("v1_en");

            loc.CurrentCulture = new CultureInfo("fr");
            loc["val1"].ShouldBeEquivalentTo("v1_en");
        }
        public void LoclaizeImplementEmptyFile()
        {
            var loc = new LocalizationImplementation();

            loc.LoadLanguagesFromFile(string.Empty);

            loc.CurrentCulture = new CultureInfo("en");
            loc["val1"].ShouldBeEquivalentTo(string.Empty);

            loc.CurrentCulture = new CultureInfo("fr");
            loc["val1"].ShouldBeEquivalentTo(string.Empty);
        }
        public void DynamicLoclaizeImplement()
        {
            var loc = new LocalizationImplementation();

            loc.LoadLanguagesFromFile(csvLang);

            loc.CurrentCulture = new CultureInfo("en");
            (loc.Dynamic.val1 as object).ShouldBeEquivalentTo("v1_en");

            loc.CurrentCulture = new CultureInfo("ru");
            (loc.Dynamic.val1 as object).ShouldBeEquivalentTo("v1_ru");

            loc.CurrentCulture = new CultureInfo("en");
            (loc.Dynamic.val2 as object).ShouldBeEquivalentTo("v2_en");

            loc.CurrentCulture = new CultureInfo("ru");
            (loc.Dynamic.val2 as object).ShouldBeEquivalentTo("v2_ru");
        }