public void Map_WhenDuplicateKeys_ReturnsWarningAndLastValue()
        {
            // arrange
            var valueRange = new ValueRange
            {
                Values = new List <IList <object> >
                {
                    new List <object> {
                        "ID", "ru", "en"
                    },
                    new List <object> {
                        "Word", "Слово", "word"
                    },
                    new List <object> {
                        "Work", "Работа", "work"
                    },
                    new List <object> {
                        "Work", "Урок", "lesson"
                    }
                }
            };

            // act
            var objectTree = new I18nObjectTreeForLanguageMapper().Map(valueRange, "en");

            // assert
            CollectionAssert.IsNotEmpty(objectTree.Warnings);
            Assert.AreEqual("lesson", objectTree["Work"].ToString());
        }
        public void Map_WhenLangIsNotSuported_ReturnsDataInFirstNotIDColumn()
        {
            // arrange
            var valueRange = new ValueRange
            {
                Values = new List <IList <object> >
                {
                    new List <object> {
                        "ID", "ru", "en"
                    },
                    new List <object> {
                        "btn.Word", "Слово", "word"
                    },
                    new List <object> {
                        "btn.Work", "Работа", "work"
                    },
                    new List <object> {
                        "Work", "Работа", "work"
                    }
                }
            };

            // act
            var objectTree = new I18nObjectTreeForLanguageMapper().Map(valueRange, "fr");

            // assert
            Assert.AreEqual("Слово", objectTree.GetOrCreateScope("btn")["Word"].ToString());
            Assert.AreEqual("Работа", objectTree.GetOrCreateScope("btn")["Work"].ToString());
            Assert.AreEqual("Работа", objectTree["Work"].ToString());
        }
        public void Map_WhenLangIsRuAndNestedProps_ReturnsRussianData()
        {
            // arrange
            var valueRange = new ValueRange
            {
                Values = new List <IList <object> >
                {
                    new List <object> {
                        "ID", "ru", "en"
                    },
                    new List <object> {
                        "btn.Word", "Слово", "word"
                    },
                    new List <object> {
                        "btn.Work", "Работа", "work"
                    },
                    new List <object> {
                        "Work", "Работа", "work"
                    }
                }
            };

            // act
            var objectTree = new I18nObjectTreeForLanguageMapper().Map(valueRange, "ru");

            // assert
            Assert.AreEqual("Слово", objectTree.GetOrCreateScope("btn")["Word"].ToString());
            Assert.AreEqual("Работа", objectTree.GetOrCreateScope("btn")["Work"].ToString());
            Assert.AreEqual("Работа", objectTree["Work"].ToString());
        }
        public void Map_WhenLangIsEn_ReturnsEnglishData()
        {
            // arrange
            var valueRange = new ValueRange
            {
                Values = new List <IList <object> >
                {
                    new List <object> {
                        "ID", "ru", "en"
                    },
                    new List <object> {
                        "Word", "Слово", "word"
                    },
                    new List <object> {
                        "Work", "Работа", "work"
                    }
                }
            };

            // act
            var objectTree = new I18nObjectTreeForLanguageMapper().Map(valueRange, "en");

            // assert
            Assert.AreEqual("word", objectTree["Word"].ToString());
        }
        public void Map_WhenDuplicateKeysAndLastKeyIsComplex_ReturnsWarningAndLastValue()
        {
            // arrange
            var valueRange = new ValueRange
            {
                Values = new List <IList <object> >
                {
                    new List <object> {
                        "ID", "ru", "en"
                    },
                    new List <object> {
                        "Word", "Слово", "word"
                    },
                    new List <object> {
                        "Work", "Работа", "work"
                    },
                    new List <object> {
                        "Work.table", "Стол", "table"
                    }
                }
            };

            // act
            var objectTree = new I18nObjectTreeForLanguageMapper().Map(valueRange, "en");

            // assert
            CollectionAssert.IsNotEmpty(objectTree.Warnings);
            Assert.AreEqual("table", objectTree.GetOrCreateScope("Work")["table"].ToString());
        }
Пример #6
0
        public I18nSheet(string spreadsheetId, string sheetName, ValueRange valueRange)
        {
            _i18nObjectTreeForLanguageMapper = new I18nObjectTreeForLanguageMapper();
            _i18nSupportedLanguagesMapper    = new I18nSupportedLanguagesMapper();

            SpreadsheetId = spreadsheetId;
            SheetName     = sheetName;
            ValueRange    = valueRange;
        }