Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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>();
        }
Exemple #10
0
        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");
        }
Exemple #13
0
        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);
        }