コード例 #1
0
        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);
        }
コード例 #2
0
        public void CreateContext_ShouldThrown_WhenKeyLanguageEmpty()
        {
            // Arrange
            var service = new CalingaService(_testCalingaServiceSettings);

            // Act
            Action createContext = () => service.CreateContext("");

            // Assert
            createContext.Should().Throw <ArgumentNullException>();
        }
コード例 #3
0
        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>();
        }
コード例 #4
0
        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}"));
        }
コード例 #5
0
        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>();
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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();
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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));
        }