コード例 #1
0
        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);
        }
コード例 #2
0
        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}");
        }