public static int GenerateRandomNumber(string originalValue, ObfuscationFormatOption arg) { originalValue.ThrowArgumentNullExceptionIfNull(nameof(originalValue)); arg.ThrowArgumentNullExceptionIfNull(nameof(arg)); int min = 0; int max = 10; if (arg.Arguments.ContainsKey("min") && int.TryParse(arg.Arguments["min"], out int minResult)) { min = minResult; } if (arg.Arguments.ContainsKey("max") && int.TryParse(arg.Arguments["max"], out int maxResult)) { max = maxResult; } if (min >= max) { throw new ArgumentOutOfRangeException($"The min({min}) must be lower than the max({max})."); } int randomNumber = FormattingOptionProcessorStatics.RandomGenerator.Next(min, max); while (originalValue.Contains(randomNumber.ToString(CultureInfo.InvariantCulture))) { randomNumber = FormattingOptionProcessorStatics.RandomGenerator.Next(min, max); } return(randomNumber); }
public virtual string GenerateRandomString(string originalValue, ObfuscationFormatOption arg) { originalValue.ThrowArgumentNullExceptionIfNull(nameof(originalValue)); arg.ThrowArgumentNullExceptionIfNull(nameof(arg)); var scramblerClient = new ScramblerClient <string>(new StringScrambler()); int length = 5; if (arg.Arguments.ContainsKey("length")) { if (int.TryParse(arg.Arguments["length"], out int result)) { length = result; } if (originalValue.Length > length) { return(scramblerClient.ExecuteScramble(originalValue.Substring(0, length))); } return(scramblerClient.ExecuteScramble(originalValue.PadRight(length, 'A'))); } return(scramblerClient.ExecuteScramble(originalValue)); }
public void GetArgumentsShouldReturnTheArgumentsPassedInWhenInitialisingTheObject() { Dictionary <string, string> args = new Dictionary <string, string>(); args.Add("length", "10"); ObfuscationFormatOption testObject = new ObfuscationFormatOption(ObfuscationFormatType.RandomString, args); testObject.Arguments.Should().BeEquivalentTo(args); }
private static ObfuscationFormatOption GenerateValidArgs() { var args = new Dictionary <string, string>(); args.Add("length", MaxLengthOfString.ToString()); var arg = new ObfuscationFormatOption(ObfuscationFormatType.RandomString, args); return(arg); }
private static ObfuscationFormatOption GenerateValidArgs() { var args = new Dictionary <string, string>(); args.Add("filename", "testlookup.csv"); args.Add("columnname", "postcode"); var arg = new ObfuscationFormatOption(ObfuscationFormatType.Lookup, args); return(arg); }
private static ObfuscationFormatOption GenerateInvalidArgs() { var args = new Dictionary <string, string>(); args.Add("min", MaxRangeOfNewNumber.ToString()); args.Add("max", MinRangeOfNewNumber.ToString()); var arg = new ObfuscationFormatOption(ObfuscationFormatType.RandomString, args); return(arg); }
private static ObfuscationFormatOption GenerateValidArgs() { var args = new Dictionary <string, string> { { "length", MaxLengthOfString.ToString(CultureInfo.InvariantCulture) } }; var arg = new ObfuscationFormatOption(ObfuscationFormatType.RandomString, args); return(arg); }
private static ObfuscationFormatOption GenerateInvalidArgs() { var args = new Dictionary <string, string> { { "min", MaxRangeOfNewNumber.ToString(CultureInfo.InvariantCulture) }, { "max", MinRangeOfNewNumber.ToString(CultureInfo.InvariantCulture) } }; var arg = new ObfuscationFormatOption(ObfuscationFormatType.RandomString, args); return(arg); }
public void ThrowArgumentNullExceptionIfFilenameIsNotPassedAsAnArgument() { var originalValue = "Tester"; var args = new Dictionary <string, string>(); args.Add("columnname", "column"); var arg = new ObfuscationFormatOption(ObfuscationFormatType.Lookup, args); Action action = () => systemUnderTest.GenerateFromLookup(originalValue, arg); action.Should().Throw <ArgumentNullException>(); }
public void GetFormatTypeShouldReturnTheFormatTypePassedInWhenInitialisingTheObject() { Dictionary <string, string> args = new Dictionary <string, string>(); args.Add("length", "10"); ObfuscationFormatOption testObject = new ObfuscationFormatOption(ObfuscationFormatType.RandomString, args); testObject.FormatType.Should() .BeOfType(typeof(ObfuscationFormatType)); testObject.FormatType .Should().BeEquivalentTo(ObfuscationFormatType.RandomString); }
public void ThrowValidationExceptionIfFilenameIsNotPassedAsAnArgument() { var originalValue = "Tester"; var args = new Dictionary <string, string> { { "columnname", "column" } }; var arg = new ObfuscationFormatOption(ObfuscationFormatType.Lookup, args); Action action = () => systemUnderTest.GenerateFromLookup(originalValue, arg); action.Should().Throw <Capgemini.DataMigration.Exceptions.ValidationException>(); }
public void ThrowValidationExceptionIfColumnNameIsNotPassedAsAnArgument() { var originalValue = "Tester"; var args = new Dictionary <string, string> { { "filename", "testlookup.csv" } }; var arg = new ObfuscationFormatOption(ObfuscationFormatType.Lookup, args); Action action = () => systemUnderTest.GenerateFromLookup(originalValue, arg); action.Should() .Throw <Capgemini.DataMigration.Exceptions.ValidationException>() .WithMessage("Obfuscation format option columnName should not be null"); }
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); }