Пример #1
0
        public static bool GetResult(string expectedValue, StringOperationType opType, string inValue)
        {
            if (inValue is null)
            {
                return(false);
            }

            switch (opType)
            {
            case StringOperationType.Equals:
                return(inValue.Equals(expectedValue, StringComparison.InvariantCultureIgnoreCase));

            case StringOperationType.StartsWith:
                return(inValue.StartsWith(expectedValue, StringComparison.InvariantCultureIgnoreCase));

            case StringOperationType.Contains:
                return(inValue.Contains(expectedValue));   //, StringComparison.InvariantCultureIgnoreCase);

            case StringOperationType.ContainedIn:
                return(expectedValue.Contains(inValue));   //, StringComparison.InvariantCultureIgnoreCase);

            default:
                throw new InvalidOperationException($"Unhandled StringOperationType of {opType} in GetResult()!");
            }
        }
Пример #2
0
        public void StringMatch_Evaluation_Check_Cases(string value, StringOperationType operation, bool ignoreCase, string input, bool expectedResult)
        {
            var context = new RewriteContext {
                HttpContext = new DefaultHttpContext()
            };
            var stringMatch = new StringMatch(value, operation, ignoreCase);
            var matchResult = stringMatch.Evaluate(input, context);

            Assert.Equal(expectedResult, matchResult.Success);
        }
Пример #3
0
        public StringMatch(string value, StringOperationType operation, bool ignoreCase)
        {
            _value = value;
            if (operation < StringOperationType.Equal || operation > StringOperationType.LessEqual)
            {
                throw new ArgumentOutOfRangeException(nameof(operation));
            }

            _operation        = operation;
            _stringComparison = ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;
        }
Пример #4
0
 public StringWrapper(StringOperationType type)
 {
     if (type == StringOperationType.Normal)
     {
         useSB = false;
     }
     else
     {
         useSB      = true;
         internalSB = new StringBuilder();
     }
 }
Пример #5
0
 public StringMatch(string value, StringOperationType operation, bool ignoreCase)
 {
     _value            = value;
     _operation        = operation;
     _stringComparison = ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;
 }
Пример #6
0
 public StringMatch(string value, StringOperationType operation, bool ignoreCase)
 {
     _value      = value;
     _operation  = operation;
     _ignoreCase = ignoreCase;
 }