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); }
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); }
public async Task TestLanguagePart() { var languageLoaderTest = new LanguageLoaderTestImpl(); var _ = await CreateContainer(languageLoaderTest); var partType = (ILanguageLoaderPartTest)languageLoaderTest; Assert.NotNull(partType); Assert.Equal("Ok", partType.Ok2); }
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); }
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); }
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()); }
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); }