public void GenerateRandomStringOnlySpecialCharactersTest() { // Arrange var charactersOne = (Min : 33, Max : 47); var charactersTwo = (Min : 58, Max : 64); var charactersThree = (Min : 91, Max : 96); var charactersFour = (Min : 123, Max : 126); var stringLength = 10; var options = new RandomStringOptions { IncludeSpecialCharacter = true }; // Act var result = StringFactory.GenerateRandomString(stringLength, options); // Assert result.Should().HaveLength(stringLength); result.All(c => Convert.ToByte(c) >= charactersOne.Min && Convert.ToByte(c) <= charactersOne.Max || Convert.ToByte(c) >= charactersTwo.Min && Convert.ToByte(c) <= charactersTwo.Max || Convert.ToByte(c) >= charactersThree.Min && Convert.ToByte(c) <= charactersThree.Max || Convert.ToByte(c) >= charactersFour.Min && Convert.ToByte(c) <= charactersFour.Max ).Should().BeTrue(); }
public void GenerateRandomStringNoCharactersEnabledTest() { // Arrange var stringLength = 10; var options = new RandomStringOptions(); // Act StringFactory.GenerateRandomString(stringLength, options); }
public void GenerateRandomStringOnlyUpperCaseTest() { // Arrange var characters = (Min : 65, Max : 90); var stringLength = 10; var options = new RandomStringOptions { IncludeUppercase = true }; // Act var result = StringFactory.GenerateRandomString(stringLength, options); // Assert result.Should().HaveLength(stringLength); result.All(c => Convert.ToByte(c) >= characters.Min && Convert.ToByte(c) <= characters.Max).Should().BeTrue(); }
public void GenerateRandomStringOnlyNumbersTest() { // Arrange var numbers = (Min : 48, Max : 57); var stringLength = 10; var options = new RandomStringOptions { IncludeNumbers = true }; // Act var result = StringFactory.GenerateRandomString(stringLength, options); // Assert result.Should().HaveLength(stringLength); result.All(c => Convert.ToByte(c) >= numbers.Min && Convert.ToByte(c) <= numbers.Max).Should().BeTrue(); }
public static string RandomString(int Length, RandomStringOptions options = RandomStringOptions.Letters) { if (Length == 0) { return(""); } StringBuilder dictionary = new StringBuilder(); if ((options & RandomStringOptions.Letters) == RandomStringOptions.Letters) { dictionary.Append(PASSWORD_CHARS_UCASE); } if ((options & RandomStringOptions.Numbers) == RandomStringOptions.Numbers) { dictionary.Append(PASSWORD_CHARS_NUMERIC); } if ((options & RandomStringOptions.SpecialChars) == RandomStringOptions.SpecialChars) { dictionary.Append(PASSWORD_CHARS_SPECIAL); } if ((options & RandomStringOptions.Letters) == RandomStringOptions.Letters) { dictionary.Append(PASSWORD_CHARS_LCASE); } if ((options & RandomStringOptions.Numbers) == RandomStringOptions.Numbers) { dictionary.Append(PASSWORD_CHARS_NUMERIC); } char[] result = new char[Length]; for (int i = 0; i < Length; i++) { result[i] = dictionary[random.Next(dictionary.Length)]; } return(new string(result)); }
/// <summary> /// 根据 RandomStringOptions 生成指定个数的随机字符串 /// </summary> /// <param name="count">生成字符个数</param> /// <param name="options"></param> /// <returns></returns> public static string NextString(int count, RandomStringOptions options) { if (count <= 0) { throw new ArgumentException("必须大于0", "count"); } switch (options) { case RandomStringOptions.Integer: return(NextIntCount(count)); case RandomStringOptions.IntEnglish: return(NextIntEnglishCount("0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ", count)); case RandomStringOptions.IntEnglishLower: return(NextIntEnglishCount("0123456789abcdefghigklmnopqrstuvwxyz", count)); case RandomStringOptions.IntEnglishUpper: return(NextIntEnglishCount("0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZ", count)); case RandomStringOptions.English: return(NextIntEnglishCount("abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ", count)); case RandomStringOptions.EnglishLower: return(NextIntEnglishCount("abcdefghigklmnopqrstuvwxyz", count)); case RandomStringOptions.EnglishUpper: return(NextIntEnglishCount("ABCDEFGHIGKLMNOPQRSTUVWXYZ", count)); case RandomStringOptions.Chinese: return(NextChineseCount(count)); /*case RandomStringOptions.ChinesePinyin: * return ConvertHelper.ChineseToPinyin(NextChineseCount(count));*/ } return(string.Empty); }
public static string RandomString(RandomStringOptions options = RandomStringOptions.Letters) { return(RandomString(random.Next(DEFAULT_MIN_PASSWORD_LENGTH, DEFAULT_MAX_PASSWORD_LENGTH), options)); }