public void AddCustomProcessorsObjectTypeCodeConfigAddsObjectTypeCodeProcessor() { string expectedLoggerOutput = "Using ObjectTypeCodeProcessor processor"; MockCrmGenericImporterConfig.SetupGet(c => c.ObjectTypeCodeMappingConfig).Returns(objectTypeCodeMappingConfig); var importer = new TestCrmGenericImporter(MockLogger.Object, mockStoreReader.Object, storeWriter, MockCrmGenericImporterConfig.Object); Assert.IsNotNull(importer); MockLogger.Verify(l => l.LogVerbose(expectedLoggerOutput), Times.Once); MockCrmGenericImporterConfig.VerifyAll(); }
public void DeactivateAllProcesses() { MockCrmGenericImporterConfig.SetupGet(c => c.ObjectTypeCodeMappingConfig).Returns(new ObjectTypeCodeMappingConfiguration()); MockCrmGenericImporterConfig.SetupGet(c => c.DeactivateAllProcesses).Returns(true); MockCrmGenericImporterConfig.Setup(a => a.ResetProcessesToDeactivate()); MockCrmGenericImporterConfig.Setup(a => a.ResetPluginsToDeactivate()); var importer = new TestCrmGenericImporter(MockLogger.Object, mockStoreReader.Object, storeWriter, MockCrmGenericImporterConfig.Object); importer.Should().NotBeNull(); MockCrmGenericImporterConfig.VerifyAll(); }
public void EntitiesToSync() { List <string> entitiesToSync = new List <string>() { "contactid" }; MockCrmGenericImporterConfig.SetupGet(c => c.ObjectTypeCodeMappingConfig).Returns(new ObjectTypeCodeMappingConfiguration()); MockCrmGenericImporterConfig.SetupGet(c => c.EntitiesToSync).Returns(entitiesToSync); var importer = new TestCrmGenericImporter(MockLogger.Object, mockStoreReader.Object, storeWriter, MockCrmGenericImporterConfig.Object); importer.Should().NotBeNull(); MockCrmGenericImporterConfig.VerifyAll(); }
public void FiledsToIgnore() { List <string> fieldsToIgnore = new List <string>() { "contactid" }; MockCrmGenericImporterConfig.SetupGet(c => c.ObjectTypeCodeMappingConfig).Returns(new ObjectTypeCodeMappingConfiguration()); MockCrmGenericImporterConfig.SetupGet(c => c.FiledsToIgnore).Returns(fieldsToIgnore); var importer = new TestCrmGenericImporter(MockLogger.Object, mockStoreReader.Object, storeWriter, MockCrmGenericImporterConfig.Object); importer.Should().NotBeNull(); MockCrmGenericImporterConfig.VerifyAll(); }
public void GetStartingPassNumberWithPassZeroEntities() { DataCrmStoreWriter dsw = new DataCrmStoreWriter(MockLogger.Object, MockEntityRepo.Object, 200, null); Mock <IDataStoreReader <Entity, EntityWrapper> > storeReader = new Mock <IDataStoreReader <Entity, EntityWrapper> >(); Mock <ICrmGenericImporterConfig> config = new Mock <ICrmGenericImporterConfig>(); // setup pass zero entities config.SetupGet(c => c.PassOneReferences).Returns(new List <string> { "businessunit", "uom", "uomschedule", "queue" }); // execute test TestCrmGenericImporter importer = new TestCrmGenericImporter(MockLogger.Object, storeReader.Object, dsw, config.Object); var actual = importer.GetStartingPassNumber(); Assert.AreEqual((int)PassType.CreateRequiredEntity, actual, "Ivalid starting pass number"); }
public void ProcessZeroEntitiesFirst() { MockEntityRepo.SetupGet(p => p.GetEntityMetadataCache).Returns(MockEntityMetadataCache.Object); MockEntityMetadataCache.Setup(a => a.GetEntityMetadata(It.IsAny <string>())).Returns(new EntityMetadata()); MockEntityMetadataCache.Setup(a => a.GetIdAliasKey(It.IsAny <string>())).Returns("testvalue"); DataCrmStoreWriter dsw = new DataCrmStoreWriter(MockLogger.Object, MockEntityRepo.Object, 200, null); var storeReader = new Mock <IDataStoreReader <Entity, EntityWrapper> >(); var config = new Mock <ICrmGenericImporterConfig>(); // setup pass zero entities config.SetupGet(c => c.PassOneReferences).Returns(new List <string> { "businessunit", "uom", "uomschedule", "queue" }); // handle data store reader - after rested put entities back into queue Queue <List <EntityWrapper> > queue = GetMockedData(); storeReader.Setup(sr => sr.ReadBatchDataFromStore()).Returns(queue.Dequeue); storeReader.Setup(sr => sr.Reset()).Callback(() => GetMockedData().All(data => { queue.Enqueue(data); return(true); })); // reset the queue! // record order of saving entites List <EntityWrapper> actual = new List <EntityWrapper>(); MockEntityRepo.Setup(repo => repo.CreateUpdateEntities(It.IsAny <List <EntityWrapper> >())).Callback <List <EntityWrapper> >(list => actual.AddRange(list)); // execute test TestCrmGenericImporter importer = new TestCrmGenericImporter(MockLogger.Object, storeReader.Object, dsw, config.Object); importer.MigrateData(); // 3 batches - 3 calls! MockEntityRepo.Verify(repo => repo.CreateUpdateEntities(It.IsAny <List <EntityWrapper> >()), Times.Exactly(3)); MockEntityMetadataCache.Verify(a => a.GetEntityMetadata(It.IsAny <string>())); MockEntityMetadataCache.Verify(a => a.GetIdAliasKey(It.IsAny <string>())); // queue should be added first Assert.AreEqual("queue", actual[0].OriginalEntity.LogicalName); Assert.AreEqual("queue", actual[1].OriginalEntity.LogicalName); }
public void ProcessesToDeactivate() { List <string> processesToDeactivate = new List <string>() { "contactid" }; MockCrmGenericImporterConfig.SetupGet(c => c.ObjectTypeCodeMappingConfig).Returns(new ObjectTypeCodeMappingConfiguration()); MockCrmGenericImporterConfig.SetupGet(c => c.ProcessesToDeactivate).Returns(processesToDeactivate); MockCrmGenericImporterConfig.Setup(a => a.ResetPluginsToDeactivate()); var importer = new TestCrmGenericImporter(MockLogger.Object, mockStoreReader.Object, storeWriter, MockCrmGenericImporterConfig.Object); importer.Should().NotBeNull(); MockCrmGenericImporterConfig.VerifyAll(); }
public void GetStartingPassNumberNoPassZeroEntities() { Mock <ILogger> logger = new Mock <ILogger>(); Mock <IEntityRepository> entityrepo = new Mock <IEntityRepository>(); DataCrmStoreWriter dsw = new DataCrmStoreWriter(logger.Object, entityrepo.Object, 200, null); Mock <IDataStoreReader <Entity, EntityWrapper> > storeReader = new Mock <IDataStoreReader <Entity, EntityWrapper> >(); Mock <ICrmGenericImporterConfig> config = new Mock <ICrmGenericImporterConfig>(); // setup pass zero entities config.SetupGet(c => c.PassOneReferences).Returns(new List <string> { }); // execute test TestCrmGenericImporter importer = new TestCrmGenericImporter(logger.Object, storeReader.Object, dsw, config.Object); var actual = importer.GetStartingPassNumber(); Assert.AreEqual((int)PassType.CreateEntity, actual, "Ivalid starting pass number"); }