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();
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
 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)
     {
     }
 }