public void translated_fields_should_change() { // Arrange var context = new XrmFakedContext(); var pluginContext = context.GetDefaultPluginContext(); var metadata = GetMockedMultiLanguageMetadata(); context.InitializeMetadata(metadata); var preImageTheme = new opc_theme { opc_islocalizable = true, opc_name = $"{Prefix}Technology|Technologee", opc_nameenglish = "Technology", opc_namefrench = "Technologee" }; var targetTheme = new opc_theme { opc_namefrench = "Technologie" }; var previous = preImageTheme.opc_name; pluginContext.PreEntityImages.Add("PreImage", preImageTheme); pluginContext.InputParameters.Add(InputParameter.Target, targetTheme); pluginContext.MessageName = PluginMessage.Update; // Act context.ExecutePluginWith <MultiLanguagePlugin>(pluginContext); // Assert var expected = $"{Prefix}{string.Join(Separator, new[] { preImageTheme.opc_nameenglish, targetTheme.opc_namefrench })}"; targetTheme.opc_name.Should().NotBe(previous); targetTheme.opc_name.Should().Be(expected); }
public void translated_fields_should_contain_data() { // Arrange var context = new XrmFakedContext(); var metadata = GetMockedMultiLanguageMetadata(); context.InitializeMetadata(metadata); var theme = new opc_theme { opc_islocalizable = true, opc_nameenglish = "Technology", opc_namefrench = "Technologie" }; // Act context.ExecutePluginWithTarget <MultiLanguagePlugin>(theme); // Assert var expected = $"{Prefix}{string.Join(Separator, new[] { theme.opc_nameenglish, theme.opc_namefrench })}"; theme.opc_name.Should().Be(expected); }
public void fields_should_be_english_when_the_ui_is_english() { // Arrange var context = new XrmFakedContext(); var pluginContext = context.GetDefaultPluginContext(); var theme = new opc_theme { opc_islocalizable = false, opc_name = $"{Prefix}Technology{Separator}Technologie" }; var expected = theme.opc_name; pluginContext.OutputParameters.Add(OutputParameter.BusinessEntity, theme); pluginContext.MessageName = PluginMessage.Retrieve; pluginContext.SharedVariables.Add(LanguageKey, (int)Language.English); // Act context.ExecutePluginWith <MultiLanguagePlugin>(pluginContext); // Assert theme.opc_name.Should().Be(expected); }
public void translated_fields_should_fallback_to_french_when_the_ui_is_english_and_the_value_is_empty() { // Arrange var context = new XrmFakedContext(); var pluginContext = context.GetDefaultPluginContext(); var theme = new opc_theme { opc_islocalizable = true, opc_name = $"{Prefix}{Separator}Technologie", opc_namefrench = "Technologie" }; pluginContext.OutputParameters.Add(OutputParameter.BusinessEntity, theme); pluginContext.MessageName = PluginMessage.Retrieve; pluginContext.SharedVariables.Add(LanguageKey, (int)Language.English); // Act context.ExecutePluginWith <MultiLanguagePlugin>(pluginContext); // Assert var expected = theme.opc_namefrench; theme.opc_name.Should().Be(expected); }