private object LookupRandomValue(string columnName, ObfuscationLookup lookup) { int index = FormattingOptionProcessorStatics.RandomGenerator.Next(lookup.Count - 1); var newValue = lookup[index, columnName]; return(newValue); }
public void PassingEmptyStringAsTheNameParamShouldThrowInvalidArgumentException() { // Arrange List <dynamic> dataRows = CreateDataRows(); ObfuscationLookup a = null; // Act Action action = () => a = new ObfuscationLookup(string.Empty, dataRows); // Assert action.Should().Throw <ArgumentException>(); }
public void GetNameShouldReturnTheNameOfTheLookupFile() { // Arrange string name = "testlookup.csv"; List <dynamic> dataRows = CreateDataRows(); // Act ObfuscationLookup testObject = new ObfuscationLookup(name, dataRows); // Assert testObject.Name.Should().Be(name); }
public void CountShouldEqualTheNumberOfDatarowsPassedWhenInitialisingTheObject() { // Arrange string name = "testlookup.csv"; List <dynamic> dataRows = CreateDataRows(); // Act ObfuscationLookup testObject = new ObfuscationLookup(name, dataRows); // Assert testObject.Count.Should().Be(dataRows.Count); }
public void PassingNullAsTheDataRowsParamShouldThrowInvalidArgumentException() { // Arrange string name = "testlookup.csv"; ObfuscationLookup a = null; // Act Action action = () => a = new ObfuscationLookup(name, null); // Assert action.Should().Throw <ArgumentException>(); }
public void Setup() { InitializeProperties(); ObfuscationLookup lookups = new ObfuscationLookup("testlookup.csv", CreateDataRows()); var mockLookup = new Mock <FormattingOptionLookup>(); mockLookup.Setup(a => a.GetObfuscationLookup(It.IsAny <string>())) .Returns(lookups); systemUnderTest = new FormattingOptionProcessor(mockLookup.Object); }
public void PassingEmptyListAsTheDataRowsParamShouldThrowInvalidArgumentException() { // Arrange string name = "testlookup.csv"; List <dynamic> dataRows = new List <dynamic>(); ObfuscationLookup a = null; // Act Action action = () => a = new ObfuscationLookup(name, dataRows); // Assert action.Should().Throw <ArgumentException>(); }
public void PassingValidNameAndDataRowsParamsToObjectInitialiserShouldCreateTheObject() { // Arrange string name = "testlookup.csv"; List <dynamic> dataRows = CreateDataRows(); // Act ObfuscationLookup testObject = new ObfuscationLookup(name, dataRows); // Assert testObject.Count.Should().Be(dataRows.Count); testObject.Name.Should().Be(name); }
public void GetItemShouldReturnNullIfNoItemWithAKeyOfColumnNameCanBeFound() { // Arrange string name = "testlookup.csv"; List <dynamic> dataRows = CreateDataRows(); int index = dataRows.Count - 1; string columnName = "NonExistingColumnName"; // Act ObfuscationLookup testObject = new ObfuscationLookup(name, dataRows); // Assert testObject[index, columnName].Should().BeNull(); }
public void GetItemShouldReturnTheDataRowAtTheGivenIndex() { // Arrange string name = "testlookup.csv"; List <dynamic> dataRows = CreateDataRows(); int index = dataRows.Count - 1; string columnName = "postcode"; ExpandoObject row = dataRows[index]; var properties = (IDictionary <string, object>)row; var comparisonValue = properties[columnName]; // Act ObfuscationLookup testObject = new ObfuscationLookup(name, dataRows); // Assert testObject[index, columnName].Should().Be(comparisonValue); }
public virtual string GenerateFromLookup(string originalValue, ObfuscationFormatOption arg) { originalValue.ThrowArgumentNullExceptionIfNull(nameof(originalValue)); arg.ThrowArgumentNullExceptionIfNull(nameof(arg)); string fileName = string.Empty; if (arg.Arguments.ContainsKey("filename")) { fileName = arg.Arguments["filename"]; } if (string.IsNullOrEmpty(fileName)) { throw new ValidationException($"Obfuscation format option {nameof(fileName)} should not be null"); } string columnName = string.Empty; if (arg.Arguments.ContainsKey("columnname")) { columnName = arg.Arguments["columnname"]; } if (string.IsNullOrEmpty(columnName)) { throw new ValidationException($"Obfuscation format option {nameof(columnName)} should not be null"); } ObfuscationLookup obfuscationLookup = formattingOptionLookup.GetObfuscationLookup(fileName); var newValue = (string)LookupRandomValue(columnName, obfuscationLookup); while (originalValue.Contains(newValue)) { newValue = (string)LookupRandomValue(columnName, obfuscationLookup); } return(newValue); }
/// <summary> /// Load all csv files into memory from the specified path. /// </summary> /// <param name="folderPath">The folder that contains the csv files to be used as lookups.</param> public static void LoadLookups(string folderPath) { folderPath.ThrowArgumentNullExceptionIfNull(nameof(folderPath)); var searchPattern = "*.csv"; var files = System.IO.Directory.GetFiles(folderPath, searchPattern, SearchOption.TopDirectoryOnly); if (files.Length == 0) { throw new FileNotFoundException($"No file matching the search pattern ({searchPattern}) could be found in the folder ({folderPath})"); } Dictionary <string, ObfuscationLookup> lookups = new Dictionary <string, ObfuscationLookup>(); foreach (string filePath in files) { var file = new FileInfo(filePath); ObfuscationLookup f = ReadFromFile(filePath); lookups.Add(file.Name, f); } ObfuscationLookups = lookups; }