public void CommitRemovedObject() { int callCount = 0; int exptectedCallCount = 1; var organisationService = new Microsoft.Xrm.Sdk.Fakes.StubIOrganizationService(); organisationService.ExecuteOrganizationRequest = (request) => { callCount++; var results = new OrganizationResponse(); return(results); }; var crmUnitOfWork = new CrmUnitOfWork(organisationService); var contactRepository = new Xrm.Infrastructure.DataAccess.Crm.Fakes.StubContactRepository(organisationService, crmUnitOfWork); contactRepository.PersistRemovedEntityBase = (contact) => { var deleteRequest = new DeleteRequest() { Target = new EntityReference(Contact.EntityLogicalName, Guid.NewGuid()) }; crmUnitOfWork.Requests.Add(deleteRequest); }; contactRepository.Remove(new Xrm.Domain.Contact.Contact()); crmUnitOfWork.Commit(); Assert.AreEqual(exptectedCallCount, callCount); }
/// <summary> /// Create plugins / steps / images of an assembly from scratch /// Based on VS project /// </summary> /// <param name="parsedArgs"></param> /// <param name="destPluginAssembly"></param> public void CreateFromScratch(CmdArgs parsedArgs, PluginAssembly destPluginAssembly) { var uow = new CrmUnitOfWork(destinationSystem); // Delete destination assembly DeleteAllPluginTypeStepsOfAssembly(destPluginAssembly); // Create / Update assembly destPluginAssembly = UploadPluginAssemblyToDestination(destPluginAssembly); // Create NEW PluginTypes/Workflows CreateNewPluginTypesInDestination(destPluginAssembly); // Create Steps var file = new FileInfo(parsedArgs.AssemblyPath); var assemblyName = file.Name.Substring(0, file.Name.Length - 4); var plugin = (from pl in uow.PluginAssemblies.GetQuery() where pl.Name == assemblyName select pl).SingleOrDefault(); var steps = (from st in uow.SdkMessageProcessingSteps.GetQuery() join pt in uow.PluginTypes.GetQuery() on st.EventHandler.Id equals pt.PluginTypeId where pt.PluginAssemblyId.Id == plugin.PluginAssemblyId select st).ToArray().ToDictionary(s => s.UniqueName); var stepsToCreate = CreateStepsModel(assemblyName); CreateSteps(uow, plugin, steps, stepsToCreate); // Create Images var allImages = (from im in uow.SdkMessageProcessingStepImages.GetQuery() join st in uow.SdkMessageProcessingSteps.GetQuery() on im.SdkMessageProcessingStepId.Id equals st.SdkMessageProcessingStepId join pl in uow.PluginTypes.GetQuery() on st.EventHandler.Id equals pl.PluginTypeId where pl.PluginAssemblyId.Id == plugin.PluginAssemblyId select im).ToList(); CreateImages(uow, stepsToCreate, allImages, steps); logger.Log( $"Successfully created steps and images of Plugin '{AssemblyPlugin.GetName().Name}'"); }
public void CommitModifiedObject() { int callCount = 0; int exptectedCallCount = 1; var organisationService = new Microsoft.Xrm.Sdk.Fakes.StubIOrganizationService(); organisationService.ExecuteOrganizationRequest = (request) => { callCount++; var results = new OrganizationResponse(); return(results); }; var crmUnitOfWork = new CrmUnitOfWork(organisationService); var contactRepository = new Xrm.Infrastructure.DataAccess.Crm.Fakes.StubContactRepository(organisationService, crmUnitOfWork); contactRepository.PersistUpdatedEntityBase = (contact) => { var sdkContact = new Contact(); sdkContact.ContactId = contact.Id; sdkContact.FirstName = "test"; var updateRequest = new UpdateRequest() { Target = sdkContact }; crmUnitOfWork.Requests.Add(updateRequest); }; contactRepository.Update(new Xrm.Domain.Contact.Contact()); crmUnitOfWork.Commit(); Assert.AreEqual(exptectedCallCount, callCount); }