private void RunDialogAndAddMessage(TestApplication testApplication, string message) { var dialog = testApplication.NavigateToDialog <ManagePluginTriggersModule, ManagePluginTriggersDialog>(); var entryViewModel = testApplication.GetSubObjectEntryViewModel(dialog); var triggersSubGrid = entryViewModel.SubGrids.First(); triggersSubGrid.DynamicGridViewModel.AddRowButton.Invoke(); var triggerEntryForm = testApplication.GetSubObjectEntryViewModel(entryViewModel); foreach (var field in triggerEntryForm.FieldViewModels) { if (field.ValueObject == null) { if (field is LookupFieldViewModel) { var typeFieldViewModel = (LookupFieldViewModel)field; if (field.FieldName == "Message") { typeFieldViewModel.Value = typeFieldViewModel.LookupService.ToLookup(typeFieldViewModel.ItemsSource.First(m => m.Name == message).Record); } else if (typeFieldViewModel.UsePicklist) { typeFieldViewModel.Value = typeFieldViewModel.LookupService.ToLookup(typeFieldViewModel.ItemsSource.First(p => p.Record != null).Record); } ; } if (field is PicklistFieldViewModel) { var typeFieldViewModel = (PicklistFieldViewModel)field; typeFieldViewModel.Value = typeFieldViewModel.ItemsSource.First(); } if (field is RecordTypeFieldViewModel) { var typeFieldViewModel = (RecordTypeFieldViewModel)field; typeFieldViewModel.Value = typeFieldViewModel.ItemsSource.First(); } if (field.FieldName == nameof(PluginTrigger.FilteringFields) && message == "Update") { var multiSelectField = triggerEntryForm.GetFieldViewModel <RecordFieldMultiSelectFieldViewModel>(nameof(PluginTrigger.FilteringFields)); SelectItems(multiSelectField, 1, 2); } if (field.FieldName == nameof(PluginTrigger.PreImageAllFields) && message == "Update") { triggerEntryForm.GetFieldViewModel <BooleanFieldViewModel>(nameof(PluginTrigger.PreImageAllFields)).Value = false; } if (field.FieldName == nameof(PluginTrigger.PreImageFields) && message == "Update") { var multiSelectField = triggerEntryForm.GetFieldViewModel <RecordFieldMultiSelectFieldViewModel>(nameof(PluginTrigger.PreImageFields)); SelectItems(multiSelectField, 1, 2); } } } triggerEntryForm.GetPicklistFieldFieldViewModel(nameof(PluginTrigger.Mode)).ValueObject = PluginTrigger.PluginMode.Asynch; triggerEntryForm.GetPicklistFieldFieldViewModel(nameof(PluginTrigger.Stage)).ValueObject = PluginTrigger.PluginStage.PostEvent; triggerEntryForm.GetBooleanFieldFieldViewModel(nameof(PluginTrigger.PreImageAllFields)).Value = true; triggerEntryForm.GetLookupFieldFieldViewModel(nameof(PluginTrigger.SpecificUserContext)).Value = null; var filteringAttributesField = triggerEntryForm.GetFieldViewModel <RecordFieldMultiSelectFieldViewModel>(nameof(PluginTrigger.FilteringFields)); DeselectAll(filteringAttributesField); Assert.IsTrue(triggerEntryForm.Validate()); triggerEntryForm.SaveButtonViewModel.Invoke(); Assert.IsTrue(entryViewModel.Validate()); entryViewModel.SaveButtonViewModel.Invoke(); var response = dialog.CompletionItem as ManagePluginTriggersResponse; Assert.IsFalse(response.HasError); }