private static async Task Main() { var service = new CalingaService(AppCalingaServiceSettings); Console.WriteLine("calinga service: try to get all languages"); var languages = await service.GetLanguagesAsync().ConfigureAwait(false); foreach (var name in languages) { Console.WriteLine(name); } Console.WriteLine("calinga service: try to get translations"); var translation = await service.TranslateAsync("Button.Cancel", "en").ConfigureAwait(false); Console.WriteLine(Invariant($"Key: Button.Cancel, Translation: {translation}")); translation = await service.TranslateAsync("Button.Create", "en").ConfigureAwait(false); Console.WriteLine(Invariant($"Key: Button.Create, Translation: {translation}")); Console.WriteLine("clean cache..."); await service.ClearCache().ConfigureAwait(false); Console.ReadKey(false); }
public void CreateContext_ShouldThrown_WhenKeyLanguageEmpty() { // Arrange var service = new CalingaService(_testCalingaServiceSettings); // Act Action createContext = () => service.CreateContext(""); // Assert createContext.Should().Throw <ArgumentNullException>(); }
public void Translate_ShouldThrown_WhenKeyLanguageEmpty() { // Arrange var service = new CalingaService(_testCalingaServiceSettings); // Act Func <Task> getTranslations = async() => await service.TranslateAsync(TestData.Key_1, "").ConfigureAwait(false); // Assert getTranslations.Should().Throw <ArgumentNullException>(); }
public async Task Translate_ShouldReturnTranslationFromTestData() { // Arrange var service = new CalingaService(_cachingService.Object, _consumerHttpClient.Object, _testCalingaServiceSettings); // Act var translation = await service.TranslateAsync(TestData.Key_1, TestData.Language_DE).ConfigureAwait(false); // Assert translation.Should().Be(Invariant($"{TestData.Language_DE} {TestData.Translation_Key_1}")); translation.Should().NotBe(Invariant($"{TestData.Language_EN} {TestData.Translation_Key_1}")); }
public void ContextTranslate_ShouldThrown_WhenKeyLanguageEmpty() { // Arrange var service = new CalingaService(_testCalingaServiceSettings); var context = new LanguageContext(TestData.Language_DE, service); // Act Func <Task> translate = async() => await context.TranslateAsync("").ConfigureAwait(false); // Assert translate.Should().Throw <ArgumentNullException>(); }
public async Task Translate_ShouldReturnKey_WhenKeyNotExists() { // Arrange var service = new CalingaService(_cachingService.Object, _consumerHttpClient.Object, _testCalingaServiceSettings); var key = Invariant($"{TestData.Key_1}_Test"); // Act var result = await service.TranslateAsync(key, TestData.Language_DE).ConfigureAwait(false); // Assert result.Should().Be(key); }
public async Task GetTranslations_ShouldNotFail_WhenCachingReturnsNull() { // Arrange _cachingService.Setup(x => x.GetTranslations(TestData.Language_DE, false)).ReturnsAsync(CacheResponse.Empty); _consumerHttpClient.Setup(x => x.GetTranslationsAsync(TestData.Language_DE)).ReturnsAsync(TestData.Translations_De); var service = new CalingaService(_cachingService.Object, _consumerHttpClient.Object, _testCalingaServiceSettings); // Act var translations = await service.GetTranslationsAsync(TestData.Language_DE).ConfigureAwait(false); // Assert translations.Any().Should().BeTrue(); }
public async Task GetTranslations_ShouldReturnTranslationsFromTestData() { // Arrange var service = new CalingaService(_cachingService.Object, _consumerHttpClient.Object, _testCalingaServiceSettings); // Act var translations = await service.GetTranslationsAsync(TestData.Language_DE).ConfigureAwait(false); // Assert translations.Count.Should().Be(2); translations.Should().Contain(t => t.Key.Equals(TestData.Key_1)); translations.Should().Contain(t => t.Value.Contains(TestData.Translation_Key_1)); }
public async Task GetLanguages_ShouldReturnLanguagesFromTestData() { // Arrange var service = new CalingaService(_cachingService.Object, _consumerHttpClient.Object, _testCalingaServiceSettings); // Act var languages = await service.GetLanguagesAsync().ConfigureAwait(false); // Assert languages.Count().Should().Be(2); languages.Should().Contain(TestData.Language_DE); languages.Should().Contain(TestData.Language_EN); }
public async Task Translate_ShouldReturnKey_WhenNoTranslations() { // Arrange var cachingService = new Mock <ICachingService>(); cachingService.Setup(x => x.GetTranslations(TestData.Language_DE, _testCalingaServiceSettings.IncludeDrafts)).Throws <TranslationsNotAvailableException>(); _consumerHttpClient.Setup(x => x.GetTranslationsAsync(TestData.Language_DE)).Throws <TranslationsNotAvailableException>(); var service = new CalingaService(cachingService.Object, _consumerHttpClient.Object, _testCalingaServiceSettings); // Act var result = await service.TranslateAsync(TestData.Key_1, TestData.Language_DE).ConfigureAwait(false); // Assert result.Should().Be(TestData.Key_1); }
public async Task GetTranslations_ShouldReturnKeysFromTestData_WhenDevMode() { // Arrange var setting = CreateSettings(true); var service = new CalingaService(_cachingService.Object, _consumerHttpClient.Object, setting); // Act var translations = await service.GetTranslationsAsync(TestData.Language_DE).ConfigureAwait(false); // Assert translations.Count.Should().Be(2); translations.Should().Contain(t => t.Key.Equals(TestData.Key_1)); translations.Should().Contain(t => t.Value.Equals(TestData.Key_1)); translations.Should().Contain(t => t.Key.Equals(TestData.Key_2)); translations.Should().Contain(t => t.Value.Equals(TestData.Key_2)); }