Пример #1
0
        public async Task TestTranslations()
        {
            var languageLoaderTest = new LanguageLoaderTestImpl();
            var languageContainer  = await CreateContainer(languageLoaderTest);

            Assert.True(languageContainer.AvailableLanguages.ContainsKey("nl-NL"));
            Assert.True(languageContainer.AvailableLanguages.ContainsKey("en-US"));
            Assert.True(languageContainer.AvailableLanguages.ContainsKey("de-DE"));
            Assert.True(languageContainer.AvailableLanguages.ContainsKey("sr-Cyrl-RS"));
            Assert.Equal("Nederlands (Nederland)", languageContainer.AvailableLanguages["nl-NL"]);
            await languageContainer.ChangeLanguageAsync("en-US");

            Assert.Equal(Ok, languageLoaderTest.Ok);
            Assert.Equal("Cancel", languageLoaderTest.TestValue);
            Assert.Equal("BlubEN", languageLoaderTest.OnlyenUs);
            Assert.NotEqual("BlubNL", languageLoaderTest.OnlynlNl);
            Assert.NotEqual("BlubDE", languageLoaderTest.OnlydeDe);
            await languageContainer.ChangeLanguageAsync("nl-NL");

            Assert.Equal("Afbreken", languageLoaderTest.TestValue);
            Assert.NotEqual("BlubEN", languageLoaderTest.OnlyenUs);
            Assert.NotEqual("BlubDE", languageLoaderTest.OnlydeDe);
            Assert.Equal("BlubNL", languageLoaderTest.OnlynlNl);
            await languageContainer.ChangeLanguageAsync("de-DE");

            Assert.Equal("BlubDE", languageLoaderTest.OnlydeDe);
        }
Пример #2
0
        public async Task Test_Enumerable()
        {
            var languageLoaderTest = new LanguageLoaderTestImpl();
            var languageContainer  = await CreateContainer(languageLoaderTest);

            var prefixes = languageContainer.Select(l => l.PrefixName()).ToList();

            Assert.Contains("Test", prefixes);
            // No module support yet - Assert.Contains("MyModule", prefixes);
        }
Пример #3
0
        public async Task TestLanguagePart()
        {
            var languageLoaderTest = new LanguageLoaderTestImpl();
            var _ = await CreateContainer(languageLoaderTest);

            var partType = (ILanguageLoaderPartTest)languageLoaderTest;

            Assert.NotNull(partType);
            Assert.Equal("Ok", partType.Ok2);
        }
Пример #4
0
        public async Task Test_LanguageChanged()
        {
            var languageLoaderTest = new LanguageLoaderTestImpl();
            var languageContainer  = await CreateContainer(languageLoaderTest);

            var changed           = false;
            var eventRegistration = languageLoaderTest.OnLanguageChanged(sender => changed = true);

            await languageContainer.ChangeLanguageAsync("nl-NL");

            eventRegistration.Dispose();
            Assert.True(changed);
        }
Пример #5
0
        public async Task TestExtension()
        {
            var languageLoaderTest = new LanguageLoaderTestImpl();
            var _ = await CreateContainer(languageLoaderTest);

            ILanguageLoaderTest test = null;
            // ReSharper disable once ExpressionIsAlwaysNull
            // This is actually what we want to test, extension method can work on null values :)
            var ok = test.DefaultTranslation(x => x.Ok);

            Assert.Equal("Ok", ok);

            ok = languageLoaderTest.TranslationOrDefault(x => x.Ok);
            Assert.Equal("Ok", ok);

            ok = languageLoaderTest.TranslationOrDefault(x => x.Ok);
            Assert.Equal("Ok", ok);
        }
Пример #6
0
        public async Task TestIndexer()
        {
            var languageLoaderTest = new LanguageLoaderTestImpl();
            var languageContainer  = await CreateContainer(languageLoaderTest);

            await languageContainer.ChangeLanguageAsync("nl-NL");

            var afbreken = languageLoaderTest["TestValue"];

            Assert.Equal("Afbreken", afbreken);
            // Test using the raw property name with the indexer
            Assert.Equal("Afbreken", languageContainer["test"]["test_value"]);
            Assert.Equal("cool", languageContainer["test"]["dapplo"]);
            Assert.Equal("cool", languageLoaderTest["dapplo"]);
            Assert.Equal("cool", languageLoaderTest["dapplo_"]);
            Assert.Contains("dapplo", languageLoaderTest.PropertyFreeKeys());
            Assert.Contains("dapplo_", languageLoaderTest.PropertyFreeKeys());
            // Test if translations without matching properties are available
            Assert.Contains("dapplo", languageContainer["test"].Keys());
        }
Пример #7
0
        public async Task TestINotifyPropertyChanged()
        {
            var languageLoaderTest = new LanguageLoaderTestImpl();
            var languageContainer  = await CreateContainer(languageLoaderTest);

            var hasChanges  = false;
            var propChanged = new PropertyChangedEventHandler((sender, eventArgs) =>
            {
                Log.Debug().WriteLine($"Change for {eventArgs.PropertyName}");
                hasChanges = true;
            });

            // Test event handler
            languageLoaderTest.PropertyChanged += propChanged;

            await languageContainer.ChangeLanguageAsync("nl-NL").ConfigureAwait(false);

            // Make sure the events are handled
            await Task.Yield();

            Assert.True(hasChanges);
        }