public void DirectMigrationTest() { ConsoleLogger.LogLevel = 5; var orgService = ConnectionHelper.GetOrganizationalServiceSource(); var repo = new EntityRepository(orgService, new ServiceRetryExecutor()); List <string> fetchXMLQueries = new List <string> { "<fetch><entity name=\"contact\" ><attribute name=\"ownerid\" /><attribute name=\"firstname\" /></entity></fetch>" }; var readerConfig = new CrmStoreReaderConfig(fetchXMLQueries) { BatchSize = 2, PageSize = 2, TopCount = 2, }; var writerConfig = new CrmStoreWriterConfig { SaveBatchSize = 200, }; var reader = new DataCrmStoreReader(logger, repo, readerConfig); var writer = new DataCrmStoreWriter(logger, repo, writerConfig); var migrator = new GenericDataMigrator <Entity, EntityWrapper>(logger, reader, writer); var obfuscateProcessor = new ObfuscateFieldsProcessor(repo.GetEntityMetadataCache, GetImporterConfig().FieldsToObfuscate); migrator.AddProcessor(obfuscateProcessor); migrator.MigrateData(); }
public void ReadBatchDataFromStore() { var orgService = ConnectionHelper.GetOrganizationalServiceSource(); var entRepo = new EntityRepository(orgService, retryExecutor); string folderPath = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName; string fetchXMLFolderPath = Path.Combine(folderPath, "TestData\\FetchXmlFolder"); CrmExporterConfig config = new CrmExporterConfig() { FetchXMLFolderPath = fetchXMLFolderPath }; DataCrmStoreReader crmStore = new DataCrmStoreReader(new ConsoleLogger(), entRepo, config); List <EntityWrapper> results = new List <EntityWrapper>(); List <EntityWrapper> batch = crmStore.ReadBatchDataFromStore(); while (batch.Count > 0) { results.AddRange(batch); batch = crmStore.ReadBatchDataFromStore(); } Assert.IsTrue(results.Count > 0); }
public void CrmFileDataExporterTarget() { ConsoleLogger.LogLevel = 0; var orgService = ConnectionHelper.GetOrganizationalServiceTarget(); EntityRepository entityRepo = new EntityRepository(orgService, new ServiceRetryExecutor()); string folderPath = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName; string fetchXMLFolderPath = Path.Combine(folderPath, "TestData\\FetchXmlFolder"); CrmExporterConfig config = new CrmExporterConfig() { FetchXMLFolderPath = fetchXMLFolderPath, BatchSize = 1000, PageSize = 100, TopCount = 10000 }; DataCrmStoreReader storeReader = new DataCrmStoreReader(new ConsoleLogger(), entityRepo, config); DataFileStoreWriter storeWriter = new DataFileStoreWriter(new ConsoleLogger(), $"{DateTime.UtcNow.ToString("yyMMmmss", CultureInfo.InvariantCulture)}testexportTarget", @"TestData"); CrmFileDataExporter fileExporter = new CrmFileDataExporter(new ConsoleLogger(), storeReader, storeWriter); FluentActions.Invoking(() => fileExporter.MigrateData()) .Should() .NotThrow(); }
public void Setup() { InitializeProperties(); dataCrmStoreReader = new DataCrmStoreReader(MockLogger.Object, MockEntityRepo.Object, 500, 500, 1000, true, new List <string>(), EmptyFieldsToObfuscate); dataCrmStoreWriter = new DataCrmStoreWriter(MockLogger.Object, MockEntityRepo.Object, 500, new List <string>(), new List <string>()); }
public void Reset() { systemUnderTest = new DataCrmStoreReader(MockLogger.Object, MockEntityRepo.Object, pageSize, batchSize, topCount, oneEntityPerBatch, FetchXMlQueries, EmptyFieldsToObfuscate); FluentActions.Invoking(() => systemUnderTest.Reset()) .Should() .NotThrow(); MockLogger.VerifyAll(); }
public void DirectMigrationTest() { ConsoleLogger.LogLevel = 5; var orgService = ConnectionHelper.GetOrganizationSprintAutoTest(); var repo = new EntityRepository(orgService, new ServiceRetryExecutor()); List <string> fetchXMLQueries = new List <string> { "<fetch><entity name=\"contact\" ><attribute name=\"ownerid\" /><filter>" + $"<condition attribute=\"ownerid\" operator=\"eq\" value=\"{sourceUserId}\" />" + "</filter></entity></fetch>" }; var readerConfig = new CrmStoreReaderConfig(fetchXMLQueries) { BatchSize = 200, PageSize = 200, TopCount = 200 }; var writerConfig = new CrmStoreWriterConfig { SaveBatchSize = 200 }; Dictionary <Guid, Guid> contactMappings = new Dictionary <Guid, Guid>() { { sourceUserId, targetGuidId } }; MappingConfiguration mappingConfig = new MappingConfiguration(); mappingConfig.Mappings.Add("systemuser", contactMappings); var reader = new DataCrmStoreReader(logger, repo, readerConfig); var writer = new DataCrmStoreWriter(logger, repo, writerConfig); var migrator = new GenericDataMigrator <Entity, EntityWrapper>(logger, reader, writer); var mappingProcessor = new MapEntityProcessor(mappingConfig, logger, repo); migrator.AddProcessor(mappingProcessor); FluentActions.Invoking(() => migrator.MigrateData()) .Should() .NotThrow(); }
public void ReadBatchDataFromStore() { var entityWrapperList = new List <EntityWrapper> { new EntityWrapper(new Entity("contact", Guid.NewGuid())) }; MockEntityRepo.Setup(a => a.GetEntitesByFetchXML(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>(), ref It.Ref <string> .IsAny)) .Returns(entityWrapperList); systemUnderTest = new DataCrmStoreReader(MockLogger.Object, MockEntityRepo.Object, pageSize, batchSize, topCount, oneEntityPerBatch, FetchXMlQueries, EmptyFieldsToObfuscate); var actual = systemUnderTest.ReadBatchDataFromStore(); actual.Should().NotBeNull(); MockLogger.Verify(a => a.LogVerbose(It.IsAny <string>())); }
public void Setup() { InitializeProperties(); var entities = new List <CrmEntity>() { new CrmEntity(), new CrmEntity() }; schemaConfig = new CrmSchemaConfiguration(); schemaConfig.Entities.AddRange(entities); dataCrmStoreReader = new DataCrmStoreReader(MockLogger.Object, MockEntityRepo.Object, 500, 500, 1000, true, new List <string>(), EmptyFieldsToObfuscate); string filePrefix = "Test"; string filesPath = "TestData"; List <string> excludedFields = new List <string>(); dataCrmStoreWriter = new DataFileStoreWriterCsv(MockLogger.Object, filePrefix, filesPath, excludedFields, schemaConfig); }
public CrmDirectMigrator(ILogger logger, DataCrmStoreReader storeReader, DataCrmStoreWriter storeWriter, ICrmGenericImporterConfig config, CancellationToken token) : base(logger, storeReader, storeWriter, config, token) { }
public CrmDirectMigrator(ILogger logger, DataCrmStoreReader storeReader, DataCrmStoreWriter storeWriter, ICrmGenericImporterConfig config) : base(logger, storeReader, storeWriter, config) { }
public CrmFileDataExporterCsv(ILogger logger, DataCrmStoreReader storeReader, DataFileStoreWriterCsv storeWriter, CancellationToken cancellationToken) : base(logger, storeReader, storeWriter, cancellationToken) { }
public CrmFileDataExporterCsv(ILogger logger, DataCrmStoreReader storeReader, DataFileStoreWriterCsv storeWriter) : base(logger, storeReader, storeWriter) { }
private void SetConfiguration() { dataCrmStoreReader = (DataCrmStoreReader)GetStoreReader; targetEntRepo = dataCrmStoreReader.GetEntityRepository; AddCustomProcessors(); }
public CrmFileDataExporter(ILogger logger, DataCrmStoreReader storeReader, DataFileStoreWriter storeWriter, CancellationToken cancellationToken) : base(logger, storeReader, storeWriter, cancellationToken) { SetConfiguration(); }
public CrmFileDataExporter(ILogger logger, DataCrmStoreReader storeReader, DataFileStoreWriter storeWriter) : base(logger, storeReader, storeWriter) { SetConfiguration(); }