private static object CreateAnonymous(RegularExpressionRequest request)
        {
            string pattern = request.Pattern;

            try
            {
                string regex = new Xeger(pattern).Generate();
                if (Regex.IsMatch(regex, pattern))
                {
                    return regex;
                }
            }
            catch (InvalidOperationException)
            {
#pragma warning disable 618
                return new NoSpecimen(request);
#pragma warning restore 618
            }
            catch (ArgumentException)
            {
#pragma warning disable 618
                return new NoSpecimen(request);
#pragma warning restore 618
            }

#pragma warning disable 618
            return new NoSpecimen(request);
#pragma warning restore 618
        }
        private object GenerateRegularExpression(RegularExpressionRequest request)
        {
            string pattern = request.Pattern;

            try
            {
                // Use the Xeger constructor overload that that takes an instance of Random.
                // Otherwise identically strings can be generated, if regex are generated within short time.
                string regex = new Xeger(pattern, new Random(this.GenerateSeed())).Generate();
                if (Regex.IsMatch(regex, pattern))
                {
                    return(regex);
                }
            }
            catch (InvalidOperationException)
            {
                return(new NoSpecimen());
            }
            catch (ArgumentException)
            {
                return(new NoSpecimen());
            }

            return(new NoSpecimen());
        }
        private static object CreateAnonymous(RegularExpressionRequest request)
        {
            string pattern = request.Pattern;

            try
            {
                string regex = new Xeger(pattern).Generate();
                if (Regex.IsMatch(regex, pattern))
                {
                    return(regex);
                }
            }
            catch (InvalidOperationException)
            {
#pragma warning disable 618
                return(new NoSpecimen(request));

#pragma warning restore 618
            }
            catch (ArgumentException)
            {
#pragma warning disable 618
                return(new NoSpecimen(request));

#pragma warning restore 618
            }

#pragma warning disable 618
            return(new NoSpecimen(request));

#pragma warning restore 618
        }
Ejemplo n.º 4
0
        public string GenerateInstance(InstanceGenerator gen)
        {
            var request = new RegularExpressionRequest(_pattern);

            var result = RegexGenerator.Create(request, new DummyContext());

            return(result.ToString());
        }
Ejemplo n.º 5
0
        public string StringMatching(string pattern)
        {
            var request = new RegularExpressionRequest(pattern);

            var result = _regexGenerator.Create(request, new DummyContext());

            return(result.ToString());
        }
        public void SutIsEquatable()
        {
            // Arrange
            // Act
            var sut = new RegularExpressionRequest("[0-9]");

            // Assert
            Assert.IsAssignableFrom <IEquatable <RegularExpressionRequest> >(sut);
        }
 public void SutIsEquatable()
 {
     // Fixture setup
     // Exercise system
     var sut = new RegularExpressionRequest("[0-9]");
     // Verify outcome
     Assert.IsAssignableFrom<IEquatable<RegularExpressionRequest>>(sut);
     // Teardown
 }
Ejemplo n.º 8
0
        public void SutIsEquatable()
        {
            // Fixture setup
            // Exercise system
            var sut = new RegularExpressionRequest("[0-9]");

            // Verify outcome
            Assert.IsAssignableFrom <IEquatable <RegularExpressionRequest> >(sut);
            // Teardown
        }
 public void PatternIsCorrect(string pattern)
 {
     // Fixture setup
     var sut = new RegularExpressionRequest(pattern);
     // Exercise system
     var result = sut.Pattern;
     // Verify outcome
     Assert.Equal(pattern, result);
     // Teardown
 }
 public void SutDoesNotEqualNullObject()
 {
     // Fixture setup
     var sut = new RegularExpressionRequest("[0-9]");
     object other = null;
     // Exercise system
     var result = sut.Equals(other);
     // Verify outcome
     Assert.False(result);
 }
        public void PatternIsCorrect(string pattern)
        {
            // Arrange
            var sut = new RegularExpressionRequest(pattern);
            // Act
            var result = sut.Pattern;

            // Assert
            Assert.Equal(pattern, result);
        }
        public void SutDoesNotEqualAnonymousObject()
        {
            // Arrange
            var    sut             = new RegularExpressionRequest("[0-9]");
            object anonymousObject = new ConcreteType();
            // Act
            var result = sut.Equals(anonymousObject);

            // Assert
            Assert.False(result);
        }
        public void SutDoesNotEqualNullSut()
        {
            // Arrange
            var sut = new RegularExpressionRequest("[0-9]");
            RegularExpressionRequest other = null;
            // Act
            var result = sut.Equals(other);

            // Assert
            Assert.False(result);
        }
Ejemplo n.º 14
0
        public void PatternIsCorrect(string pattern)
        {
            // Fixture setup
            var sut = new RegularExpressionRequest(pattern);
            // Exercise system
            var result = sut.Pattern;

            // Verify outcome
            Assert.Equal(pattern, result);
            // Teardown
        }
 public void SutDoesNotEqualAnonymousObject()
 {
     // Fixture setup
     var sut = new RegularExpressionRequest("[0-9]");
     object anonymousObject = new FileStyleUriParser();
     // Exercise system
     var result = sut.Equals(anonymousObject);
     // Verify outcome
     Assert.False(result);
     // Teardown
 }
Ejemplo n.º 16
0
        public void SutDoesNotEqualNullObject()
        {
            // Fixture setup
            var    sut   = new RegularExpressionRequest("[0-9]");
            object other = null;
            // Exercise system
            var result = sut.Equals(other);

            // Verify outcome
            Assert.False(result);
        }
        public void SutEqualsOtherSutWhenPatternsMatch()
        {
            // Arrange
            var sut   = new RegularExpressionRequest("[0-9]");
            var other = new RegularExpressionRequest("[0-9]");
            // Act
            var result = sut.Equals(other);

            // Assert
            Assert.True(result, "Equals");
        }
        public void SutDoesNotEqualOtherSutWhenPatternsAreDifferent()
        {
            // Arrange
            var sut   = new RegularExpressionRequest("[0-9]");
            var other = new RegularExpressionRequest("[A-Z]");
            // Act
            var result = sut.Equals(other);

            // Assert
            Assert.False(result, "Equals");
        }
Ejemplo n.º 19
0
        public void CreateWithRegularExpressionRequestReturnsCorrectResult(string pattern)
        {
            // Arrange
            var sut          = new RegularExpressionGenerator();
            var request      = new RegularExpressionRequest(pattern);
            var dummyContext = new DelegatingSpecimenContext();
            // Act
            var result = sut.Create(request, dummyContext);

            // Assert
            Assert.True(Regex.IsMatch(result.ToString(), pattern), string.Format("result: {0}", result));
        }
Ejemplo n.º 20
0
        public void CreateWithNotSupportedRegularExpressionRequestReturnsCorrectResult(string pattern)
        {
            // Arrange
            var sut          = new RegularExpressionGenerator();
            var request      = new RegularExpressionRequest(pattern);
            var dummyContext = new DelegatingSpecimenContext();
            // Act
            var result = sut.Create(request, dummyContext);

            // Assert
            Assert.Equal(new NoSpecimen(), result);
        }
Ejemplo n.º 21
0
        public void SutEqualsOtherSutWhenPatternsMatch()
        {
            // Fixture setup
            var sut   = new RegularExpressionRequest("[0-9]");
            var other = new RegularExpressionRequest("[0-9]");
            // Exercise system
            var result = sut.Equals(other);

            // Verify outcome
            Assert.True(result, "Equals");
            // Teardown
        }
Ejemplo n.º 22
0
 public object Create(string pattern)
 {
     try
     {
         var request = new RegularExpressionRequest(pattern);
         return(_regexGenerator.Create(request, new DummyContext()));
     }
     catch (ObjectCreationException e)
     {
         throw new ThirdPartyGeneratorFailed(e);
     }
 }
Ejemplo n.º 23
0
        public void SutDoesNotEqualOtherObjectWhenPatternsAreDifferent()
        {
            // Fixture setup
            var    sut   = new RegularExpressionRequest("[0-9]");
            object other = new RegularExpressionRequest("[A-Z]");
            // Exercise system
            var result = sut.Equals(other);

            // Verify outcome
            Assert.False(result);
            // Teardown
        }
Ejemplo n.º 24
0
        public void SutDoesNotEqualAnonymousObject()
        {
            // Fixture setup
            var    sut             = new RegularExpressionRequest("[0-9]");
            object anonymousObject = new ConcreteType();
            // Exercise system
            var result = sut.Equals(anonymousObject);

            // Verify outcome
            Assert.False(result);
            // Teardown
        }
        public void GetHashCodeReturnsCorrectResult()
        {
            // Arrange
            string pattern          = "[0-9]";
            var    sut              = new RegularExpressionRequest(pattern);
            var    expectedHashCode = pattern.GetHashCode();
            // Act
            var result = sut.GetHashCode();

            // Assert
            Assert.Equal(expectedHashCode, result);
        }
Ejemplo n.º 26
0
        public void CreateWithNotSupportedRegularExpressionRequestReturnsCorrectResult(string pattern)
        {
            // Fixture setup
            var sut          = new RegularExpressionGenerator();
            var request      = new RegularExpressionRequest(pattern);
            var dummyContext = new DelegatingSpecimenContext();
            // Exercise system
            var result = sut.Create(request, dummyContext);

            // Verify outcome
            Assert.Equal(new NoSpecimen(request), result);
            // Teardown
        }
Ejemplo n.º 27
0
        public void GetHashCodeReturnsCorrectResult()
        {
            // Fixture setup
            string pattern          = "[0-9]";
            var    sut              = new RegularExpressionRequest(pattern);
            var    expectedHashCode = pattern.GetHashCode();
            // Exercise system
            var result = sut.GetHashCode();

            // Verify outcome
            Assert.Equal(expectedHashCode, result);
            // Teardown
        }
Ejemplo n.º 28
0
        public void CreateWithRegularExpressionRequestReturnsCorrectResult(string pattern)
        {
            // Fixture setup
            var sut          = new RegularExpressionGenerator();
            var request      = new RegularExpressionRequest(pattern);
            var dummyContext = new DelegatingSpecimenContext();
            // Exercise system
            var result = sut.Create(request, dummyContext);

            // Verify outcome
            Assert.True(Regex.IsMatch(result.ToString(), pattern), string.Format("result: {0}", result));
            // Teardown
        }
Ejemplo n.º 29
0
        public void CreateMultipleWithRegularExpressionRequestReturnsDifferentResults(string pattern)
        {
            // This test exposes an issue with Xeger/Random.
            // Xeger(pattern) internally creates an instance of Random with the default seed.
            // This means that the RegularExpressionGenerator might create identical strings
            // if called multiple times within a short time.

            // Arrange
            var sut          = new RegularExpressionGenerator();
            var request      = new RegularExpressionRequest(pattern);
            var dummyContext = new DelegatingSpecimenContext();

            // Repeat a few times to make the test more robust.
            // Use ToArray to iterate the IEnumerable at this point.
            var result = Enumerable.Range(0, 10).Select(_ => sut.Create(request, dummyContext)).ToArray();

            Assert.Equal(result.Distinct(), result);
        }
        public void CreateWithRegularExpressionAttributeRequestReturnsCorrectResult(string pattern)
        {
            // Arrange
            var regularExpressionAttribute = new RegularExpressionAttribute(pattern);
            var providedAttribute          = new ProvidedAttribute(regularExpressionAttribute, true);
            var request         = new FakeMemberInfo(providedAttribute);
            var expectedRequest = new RegularExpressionRequest(regularExpressionAttribute.Pattern);
            var expectedResult  = new object();
            var context         = new DelegatingSpecimenContext
            {
                OnResolve = r => expectedRequest.Equals(r) ? expectedResult : new NoSpecimen()
            };
            var sut = new RegularExpressionAttributeRelay();
            // Act
            var result = sut.Create(request, context);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Ejemplo n.º 31
0
        public object Create(object request, ISpecimenContext context)
        {
            var pi = request as ParameterInfo;

            if (pi == null)
            {
                return(new NoSpecimen());
            }

            if (pi.ParameterType == typeof(string) && pi.Name == _memberName)
            {
                var generator    = new RegularExpressionGenerator();
                var regExRequest = new RegularExpressionRequest(_pattern);
                var result       = generator.Create(regExRequest, context);
                return(result.ToString());
            }

            return(new NoSpecimen());
        }
Ejemplo n.º 32
0
        public void CreateWithRegularExpressionAttributeRequestReturnsCorrectResult(string pattern)
        {
            // Fixture setup
            var regularExpressionAttribute = new RegularExpressionAttribute(pattern);
            var providedAttribute          = new ProvidedAttribute(regularExpressionAttribute, true);
            var request         = new FakeMemberInfo(providedAttribute);
            var expectedRequest = new RegularExpressionRequest(regularExpressionAttribute.Pattern);
            var expectedResult  = new object();
            var context         = new DelegatingSpecimenContext
            {
                OnResolve = r => expectedRequest.Equals(r) ? expectedResult : new NoSpecimen()
            };
            var sut = new RegularExpressionAttributeRelay();
            // Exercise system
            var result = sut.Create(request, context);

            // Verify outcome
            Assert.Equal(expectedResult, result);
            // Teardown
        }
Ejemplo n.º 33
0
        private static object GenerateRegularExpression(RegularExpressionRequest request)
        {
            string pattern = request.Pattern;

            try
            {
                string regex = new Xeger(pattern).Generate();
                if (Regex.IsMatch(regex, pattern))
                {
                    return(regex);
                }
            }
            catch (InvalidOperationException)
            {
                return(new NoSpecimen());
            }
            catch (ArgumentException)
            {
                return(new NoSpecimen());
            }

            return(new NoSpecimen());
        }
        public void CreateWithRegularExpressionAttributeRequestReturnsCorrectResult(string pattern)
        {
            // Fixture setup
            var regularExpressionAttribute = new RegularExpressionAttribute(pattern);
            var providedAttribute = new ProvidedAttribute(regularExpressionAttribute, true);
            ICustomAttributeProvider request = new FakeCustomAttributeProvider(providedAttribute);
            var expectedRequest = new RegularExpressionRequest(regularExpressionAttribute.Pattern);
            var expectedResult = new object();
            var context = new DelegatingSpecimenContext
            {
#pragma warning disable 618
                OnResolve = r => expectedRequest.Equals(r) ? expectedResult : new NoSpecimen(r)
#pragma warning restore 618
            };
            var sut = new RegularExpressionAttributeRelay();
            // Exercise system
            var result = sut.Create(request, context);
            // Verify outcome
            Assert.Equal(expectedResult, result);
            // Teardown
        }
 public void SutDoesNotEqualOtherSutWhenPatternsAreDifferent()
 {
     // Fixture setup
     var sut = new RegularExpressionRequest("[0-9]");
     var other = new RegularExpressionRequest("[A-Z]");
     // Exercise system
     var result = sut.Equals(other);
     // Verify outcome
     Assert.False(result, "Equals");
     // Teardown
 }
 public void GetHashCodeReturnsCorrectResult()
 {
     // Fixture setup
     string pattern = "[0-9]";
     var sut = new RegularExpressionRequest(pattern);
     var expectedHashCode = pattern.GetHashCode();
     // Exercise system
     var result = sut.GetHashCode();
     // Verify outcome
     Assert.Equal(expectedHashCode, result);
     // Teardown
 }
 public void SutEqualsOtherSutWhenPatternsMatch()
 {
     // Fixture setup
     var sut = new RegularExpressionRequest("[0-9]");
     var other = new RegularExpressionRequest("[0-9]");
     // Exercise system
     var result = sut.Equals(other);
     // Verify outcome
     Assert.True(result, "Equals");
     // Teardown
 }
Ejemplo n.º 38
0
 //[ModelVerifyFilter] 这里用全局的
 public async Task <BaseResponse> TestPost([FromBody] RegularExpressionRequest request)
 {
     return(BaseResponse.Ok());
 }