public async Task SaveSheet_WhenDataIsValid_Saves() { // arrange var valueRange = new ValueRange { Values = new List <IList <object> > { new List <object> { "ID", "ru", "en", "ua" }, new List <object> { "btn.Word", "Слово", "word" }, new List <object> { "btn.Work", "Работа", "work" }, new List <object> { "Work", "Работа", "work" } } }; var expectedI18nSheet = new I18nSheet("spreadsheetId1", "sheetName1", valueRange); var i18nLocalStore = new I18nLocalStore(Path.GetRandomFileName()); // act await i18nLocalStore.SaveSheet(expectedI18nSheet); // assert var storedSheet = await i18nLocalStore.GetSheet(expectedI18nSheet.SpreadsheetId, expectedI18nSheet.SheetName); Assert.AreEqual(expectedI18nSheet.SpreadsheetId, storedSheet.SpreadsheetId); Assert.AreEqual(expectedI18nSheet.SheetName, storedSheet.SheetName); Assert.AreEqual(expectedI18nSheet.ValueRange.Values, storedSheet.ValueRange.Values); }
public async Task GetSheet_WhenSheetNameIsEmptyAndLangIsEn_ReturnsDataOfFirstSheet() { // arrange var i18nLocalStore = new I18nLocalStore(System.IO.Path.GetRandomFileName()); await i18nLocalStore.SaveSheets(_sheets); // act & assert Assert.ThrowsAsync <ArgumentNullException>( async() => await i18nLocalStore.GetSheet(_spreadsheetId, "") ); }
public async Task GetSheet_WhenSheetNameIsUnknown_ReturnsNull() { // arrange var i18nLocalStore = new I18nLocalStore(System.IO.Path.GetRandomFileName()); await i18nLocalStore.SaveSheets(_sheets); // act var sheet = await i18nLocalStore.GetSheet(_spreadsheetId, "NonExistingSheetName"); // assert Assert.IsNull(sheet); }
public async Task GetSheet_WhenLangIsEn_ReturnsEnglishData() { // arrange var i18nLocalStore = new I18nLocalStore(System.IO.Path.GetRandomFileName()); await i18nLocalStore.SaveSheets(_sheets); // act var i18nSheet = await i18nLocalStore.GetSheet(_spreadsheetId, "Global"); // assert var objectTree = i18nSheet.GetTranslations("en"); Assert.AreEqual("Home", objectTree.GetOrCreateScope("navbar")["home"].ToString()); }
public static void AddGoogleSheetI18n(this IServiceCollection services, IConfiguration configuration) { var i18nOptions = AddOptions(services, configuration); var i18nLocalStore = new I18nLocalStore(i18nOptions.LocalStorePath); services.AddSingleton(i18nLocalStore); var i18nCache = new I18nCache(); services.AddSingleton(i18nCache); services.AddSingleton <II18nLocalStore>(new I18nCachableLocalStore(i18nLocalStore, i18nCache)); var i18nGoogleClient = new I18nGoogleClient(i18nOptions.CredentialsFilePath); services.AddSingleton <II18nGoogleClient>(i18nGoogleClient); services.AddSingleton <II18nCodeTranslation>(new I18nCodeTranslation()); }