public void GenerateValidValue_GivenRandomReturnLength_ResultValueOfEqualLength(int length) { var realRandom = new EnhancedRandom(); Random.Setup(r => r.NextDimension(It.IsAny <ModelProperty>(), It.IsAny <int>(), It.IsAny <int>())).Returns(length); Random.Setup(r => r.NextString(It.IsAny <int>())).Returns((int i) => realRandom.NextString(i)); var result = (string)Sut.GenerateValidValue(EmailModelProperty); Assert.Equal(length, result.Length); }
public object GenerateValidValue(ModelProperty property) { if (property.Max.HasValue && property.Max.Value < MIN_LENGTH) { throw new InvalidOperationException(MAX_LENGTH_ERROR); } if (property.Min.HasValue && property.Min < MIN_LENGTH) { property.Min = MIN_LENGTH; } var generatedCharacterCount = _random.NextDimension(property, MIN_LENGTH, DEFAULT_MAX_LENGTH) - REQUIRED_EMAIL_CHARACTERS.Length; var partLength = generatedCharacterCount / 3; var username = _random.NextString(partLength); var domain = _random.NextString(partLength); var topLevelDomain = _random.NextString(partLength + (generatedCharacterCount % 3)); return($"{username}@{domain}.{topLevelDomain}"); }