public void RecordEntryViewModelTestAllFieldTypes() { var applicationController = new FakeApplicationController(); var settingsObject = new SettingsTestAllFieldTypes { SavedInstances = new[] { new TestAllFieldTypes() { StringField = "Foo" } } }; applicationController.RegisterInstance(typeof(SettingsTestAllFieldTypes), settingsObject); //create the form var testObject = new TestAllFieldTypes(); var lookupService = FakeRecordService.Get(); var formController = FormController.CreateForObject(testObject, applicationController, lookupService); var entryViewModel = new ObjectEntryViewModel(() => { }, () => { }, testObject, formController); //populate all the fields entryViewModel.LoadFormSections(); PopulateRecordEntry(entryViewModel, populateSubgrids: true); //save the record Assert.IsTrue(entryViewModel.Validate()); entryViewModel.SaveButtonViewModel.Invoke(); }
public void XrmLookupServiceVerifyDoesNotCrashIfReferencedRecordDeleted() { //create object referencing a deleted record var solution = ReCreateTestSolution(); var testEntryObject = new TestXrmObjectEntryClass() { XrmLookupField = solution.ToLookup() }; XrmRecordService.Delete(solution); //verify the form loads and the invalid value is lceared var objectEntryViewModel = new ObjectEntryViewModel(null, null, testEntryObject, FakeFormController.CreateForObject(testEntryObject, new FakeApplicationController(), XrmRecordService)); objectEntryViewModel.LoadFormSections(); Assert.IsNull(testEntryObject.XrmLookupField); //lets just verify the cascade worked if we had not deleted it solution = ReCreateTestSolution(); testEntryObject = new TestXrmObjectEntryClass() { XrmLookupField = solution.ToLookup() }; objectEntryViewModel = new ObjectEntryViewModel(null, null, testEntryObject, FakeFormController.CreateForObject(testEntryObject, new FakeApplicationController(), XrmRecordService)); objectEntryViewModel.LoadFormSections(); Assert.IsNotNull(testEntryObject.XrmLookupField); Assert.IsNotNull(testEntryObject.XrmLookupFieldCascaded); }
private static void LoadForm(ObjectEntryViewModel entryForm) { entryForm.LoadFormSections(); foreach (var grid in entryForm.SubGrids) Assert.IsNotNull(grid.DynamicGridViewModel.GridRecords); }
public ObjectEntryViewModel LoadToObjectEntryViewModel(object objectToEnter) { var applicationController = new FakeApplicationController(); var recordService = new ObjectRecordService(objectToEnter, applicationController); var formService = new ObjectFormService(objectToEnter, recordService); var viewModel = new ObjectEntryViewModel(EmptyMethod, EmptyMethod, objectToEnter, new FormController(recordService, formService, applicationController)); viewModel.LoadFormSections(); Assert.IsNotNull(viewModel.FormSectionsAsync); return(viewModel); }
public void XrmLookupServiceVerifyDoesNotCrashIfConnectionDoesNotWork() { try { var solution = ReCreateTestSolution(); var testEntryObject = new TestXrmObjectEntryClass() { XrmLookupField = solution.ToLookup() }; var classSelfMapper = new ClassSelfMapper(); var newConnection = classSelfMapper.Map(GetXrmRecordConfiguration()); newConnection.OrganizationUniqueName = "Foo"; var newService = new XrmRecordService(newConnection); var objectEntryViewModel = new ObjectEntryViewModel(null, null, testEntryObject, FakeFormController.CreateForObject(testEntryObject, new FakeApplicationController(), newService)); objectEntryViewModel.LoadFormSections(); Assert.IsNotNull(testEntryObject.XrmLookupField); Assert.IsNotNull(testEntryObject.XrmLookupFieldCascaded); } catch (FakeUserMessageException) { } }