public void ProcessEntityObfuscateMultipleIntegerFields() { // Arrange CrmGenericImporterConfig config = GetCrmConfigWithFieldsToObfuscate(); InitializeEntityMetadata(); MockEntityMetadataCache .Setup(cache => cache.GetAttribute("contact", "age")) .Returns(new IntegerAttributeMetadata()); MockEntityMetadataCache .Setup(cache => cache.GetAttribute("contact", "idnumber")) .Returns(new IntegerAttributeMetadata()); int ageBefore = 25; int idNumberBefore = 25; Entity entity = new Entity("contact"); entity.Attributes.Add("age", ageBefore); entity.Attributes.Add("idnumber", idNumberBefore); EntityWrapper entityWrapper = new EntityWrapper(entity); List <FieldToBeObfuscated> fiedlsToBeObfuscated = new List <FieldToBeObfuscated> { new FieldToBeObfuscated() { FieldName = "age" }, new FieldToBeObfuscated() { FieldName = "idnumber" } }; EntityToBeObfuscated entityToBeObfuscated = new EntityToBeObfuscated() { EntityName = "contact" }; entityToBeObfuscated.FieldsToBeObfuscated.AddRange(fiedlsToBeObfuscated); var fieldToBeObfuscated = new List <EntityToBeObfuscated> { entityToBeObfuscated }; config.FieldsToObfuscate.AddRange(fieldToBeObfuscated); // Act ObfuscateFieldsProcessor processor = new ObfuscateFieldsProcessor(MockEntityMetadataCache.Object, config.FieldsToObfuscate); processor.ProcessEntity(entityWrapper, 1, 1); int ageAfter = (int)entity["age"]; int idNumberAfter = (int)entity["idnumber"]; // Assert Assert.AreNotEqual(ageBefore, ageAfter); Assert.AreNotEqual(idNumberBefore, idNumberAfter); }
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 ProcessEntityObfuscateMultipleStringFields() { // Arrange CrmGenericImporterConfig config = GetCrmConfigWithFieldsToObfuscate(); string firstnameBefore = "Tester"; string surnameBefore = "Tester"; Entity entity = new Entity("contact"); entity.Attributes.Add("firstname", firstnameBefore); entity.Attributes.Add("surname", surnameBefore); EntityWrapper entityWrapper = new EntityWrapper(entity); List <FieldToBeObfuscated> fiedlsToBeObfuscated = new List <FieldToBeObfuscated> { new FieldToBeObfuscated() { FieldName = "firstname" }, new FieldToBeObfuscated() { FieldName = "surname" } }; EntityToBeObfuscated entityToBeObfuscated = new EntityToBeObfuscated() { EntityName = "contact" }; entityToBeObfuscated.FieldsToBeObfuscated.AddRange(fiedlsToBeObfuscated); var fieldToBeObfuscated = new List <EntityToBeObfuscated> { entityToBeObfuscated }; config.FieldsToObfuscate.AddRange(fieldToBeObfuscated); // Act ObfuscateFieldsProcessor processor = new ObfuscateFieldsProcessor(MockEntityMetadataCache.Object, config.FieldsToObfuscate); processor.ProcessEntity(entityWrapper, 1, 1); string firstnameAfter = (string)entity["firstname"]; string surnameAfter = (string)entity["surname"]; // Assert Assert.AreNotEqual(firstnameBefore, firstnameAfter); Assert.AreNotEqual(surnameBefore, surnameAfter); Assert.AreNotEqual(firstnameAfter, surnameAfter); }
public void ProcessEntity_ObfuscateIntegerFields() { // Arrange CrmGenericImporterConfig config = GetCrmConfigWithFieldsToObfuscate(); InitializeEntityMetadata(); MockEntityMetadataCache .Setup(cache => cache.GetAttribute("contact", "age")) .Returns(new IntegerAttributeMetadata()); int ageBefore = 25; string surnameBefore = "Tester"; Entity entity = new Entity("contact"); entity.Attributes.Add("age", ageBefore); entity.Attributes.Add("surname", surnameBefore); EntityWrapper entityWrapper = new EntityWrapper(entity); List <FieldToBeObfuscated> fiedlsToBeObfuscated = new List <FieldToBeObfuscated>(); fiedlsToBeObfuscated.Add(new FieldToBeObfuscated() { FieldName = "age" }); EntityToBeObfuscated entityToBeObfuscated = new EntityToBeObfuscated() { EntityName = "contact", FieldsToBeObfuscated = fiedlsToBeObfuscated }; var fieldToBeObfuscated = new List <EntityToBeObfuscated>(); fieldToBeObfuscated.Add(entityToBeObfuscated); config.FieldsToObfuscate = fieldToBeObfuscated; // Act ObfuscateFieldsProcessor processor = new ObfuscateFieldsProcessor(MockEntityMetadataCache.Object, config.FieldsToObfuscate); processor.ProcessEntity(entityWrapper, 1, 1); int ageAfter = (int)entity["age"]; string surnameAfter = (string)entity["surname"]; // Assert Assert.AreNotEqual(ageBefore, ageAfter); Assert.AreEqual(surnameBefore, surnameAfter); }
public void ProcessEntityObfuscateDoubleFields() { // Arrange CrmGenericImporterConfig config = GetCrmConfigWithFieldsToObfuscate(); InitializeEntityMetadata(); MockEntityMetadataCache .Setup(cache => cache.GetAttribute("contact", "address1_latitude")) .Returns(new DoubleAttributeMetadata()); double latitudeBefore = 51.5178737; Entity entity = new Entity("contact"); entity.Attributes.Add("address1_latitude", latitudeBefore); EntityWrapper entityWrapper = new EntityWrapper(entity); List <FieldToBeObfuscated> fieldsToBeObfuscated = new List <FieldToBeObfuscated> { new FieldToBeObfuscated() { FieldName = "address1_latitude" } }; EntityToBeObfuscated entityToBeObfuscated = new EntityToBeObfuscated() { EntityName = "contact" }; entityToBeObfuscated.FieldsToBeObfuscated.AddRange(fieldsToBeObfuscated); var fieldToBeObfuscated = new List <EntityToBeObfuscated> { entityToBeObfuscated }; config.FieldsToObfuscate.AddRange(fieldToBeObfuscated); // Act ObfuscateFieldsProcessor processor = new ObfuscateFieldsProcessor(MockEntityMetadataCache.Object, config.FieldsToObfuscate); processor.ProcessEntity(entityWrapper, 1, 1); double latitudeAfter = (double)entity["address1_latitude"]; // Assert Assert.AreNotEqual(latitudeBefore, latitudeAfter); }
public void ProcessEntity_ObfuscateDecimalFields() { // Arrange CrmGenericImporterConfig config = GetCrmConfigWithFieldsToObfuscate(); InitializeEntityMetadata(); MockEntityMetadataCache .Setup(cache => cache.GetAttribute("contact", "creditlimit")) .Returns(new DecimalAttributeMetadata()); decimal creditLimitBefore = 1000M; Entity entity = new Entity("contact"); entity.Attributes.Add("creditlimit", creditLimitBefore); EntityWrapper entityWrapper = new EntityWrapper(entity); List <FieldToBeObfuscated> fiedlsToBeObfuscated = new List <FieldToBeObfuscated>(); fiedlsToBeObfuscated.Add(new FieldToBeObfuscated() { FieldName = "creditlimit" }); EntityToBeObfuscated entityToBeObfuscated = new EntityToBeObfuscated() { EntityName = "contact", FieldsToBeObfuscated = fiedlsToBeObfuscated }; var fieldToBeObfuscated = new List <EntityToBeObfuscated>(); fieldToBeObfuscated.Add(entityToBeObfuscated); config.FieldsToObfuscate = fieldToBeObfuscated; // Act ObfuscateFieldsProcessor processor = new ObfuscateFieldsProcessor(MockEntityMetadataCache.Object, config.FieldsToObfuscate); processor.ProcessEntity(entityWrapper, 1, 1); decimal creditLimitAfter = (decimal)entity["creditlimit"]; // Assert Assert.AreNotEqual(creditLimitBefore, creditLimitAfter); }
public void ObfuscateStringFieldsTest() { var orgService = ConnectionHelper.GetOrganizationalServiceTarget(); var cache = new EntityMetadataCache(orgService); List <FieldToBeObfuscated> fiedlsToBeObfuscated = new List <FieldToBeObfuscated> { new FieldToBeObfuscated() { FieldName = "firstname" } }; EntityToBeObfuscated entityToBeObfuscated = new EntityToBeObfuscated() { EntityName = "contact" }; entityToBeObfuscated.FieldsToBeObfuscated.AddRange(fiedlsToBeObfuscated); var fieldsToBeObfuscated = new List <EntityToBeObfuscated> { entityToBeObfuscated }; ObfuscateFieldsProcessor processor = new ObfuscateFieldsProcessor(cache, fieldsToBeObfuscated); string beforeFirstName = "Bob"; string beforeLastName = "test"; Entity ent = new Entity("contact"); ent.Attributes.Add("firstname", beforeFirstName); ent.Attributes.Add("lastname", beforeLastName); EntityWrapper entWrap = new EntityWrapper(ent); processor.ProcessEntity(entWrap, 1, 1); Assert.AreNotEqual(beforeFirstName, entWrap.OriginalEntity.Attributes["firstname"]); Assert.AreEqual(beforeLastName, entWrap.OriginalEntity.Attributes["lastname"]); }
public void ObfuscateIntFieldsTest() { var orgService = ConnectionHelper.GetOrganizationalServiceTarget(); var cache = new EntityMetadataCache(orgService); List <FieldToBeObfuscated> fiedlsToBeObfuscated = new List <FieldToBeObfuscated>(); fiedlsToBeObfuscated.Add(new FieldToBeObfuscated() { FieldName = "numberofchildren" }); EntityToBeObfuscated entityToBeObfuscated = new EntityToBeObfuscated() { EntityName = "contact", FieldsToBeObfuscated = fiedlsToBeObfuscated }; var fieldsToBeObfuscated = new List <EntityToBeObfuscated>(); fieldsToBeObfuscated.Add(entityToBeObfuscated); ObfuscateFieldsProcessor processor = new ObfuscateFieldsProcessor(cache, fieldsToBeObfuscated); string beforeFirstName = "Bob"; int beforeNumberOfChildren = 5; Entity ent = new Entity("contact"); ent.Attributes.Add("firstname", beforeFirstName); ent.Attributes.Add("numberofchildren", beforeNumberOfChildren); EntityWrapper entWrap = new EntityWrapper(ent); processor.ProcessEntity(entWrap, 1, 1); Assert.AreEqual(beforeFirstName, entWrap.OriginalEntity.Attributes["firstname"]); Assert.AreNotEqual(beforeNumberOfChildren, entWrap.OriginalEntity.Attributes["numberofchildren"]); }