private TestCaseLocation ToTestCaseLocation(SourceFileLocation location) { var testCaseLocation = new TestCaseLocation(location.Symbol, location.Sourcefile, location.Line); testCaseLocation.Traits.AddRange(GetTraits(location)); return(testCaseLocation); }
private TestCaseLocation ToTestCaseLocation(SourceFileLocation location, IEnumerable <SourceFileLocation> allTraitSymbols) { List <Trait> traits = GetTraits(location, allTraitSymbols); var testCaseLocation = new TestCaseLocation(location.Symbol, location.Sourcefile, location.Line); testCaseLocation.Traits.AddRange(traits); return(testCaseLocation); }
private bool IsMatch(SourceFileLocation sourceFileLocation, MethodSignature methodSignature) { string signature = methodSignature.Signature; bool generalCheck = methodSignature.IsRegex ? Regex.IsMatch(sourceFileLocation.Symbol, signature) : sourceFileLocation.Symbol.Contains(signature); return(generalCheck && Regex.IsMatch(sourceFileLocation.Symbol, GetPreciseRegex(signature))); }
public static List <Trait> GetTraits(SourceFileLocation nativeSymbol, IEnumerable <SourceFileLocation> allTraitSymbols) { var traits = new List <Trait>(); // ReSharper disable once LoopCanBeConvertedToQuery foreach (SourceFileLocation nativeTraitSymbol in allTraitSymbols) { if (nativeSymbol.Symbol.StartsWith(nativeTraitSymbol.TestClassSignature)) { int lengthOfSerializedTrait = nativeTraitSymbol.Symbol.Length - nativeTraitSymbol.IndexOfSerializedTrait - TraitAppendix.Length; string serializedTrait = nativeTraitSymbol.Symbol.Substring(nativeTraitSymbol.IndexOfSerializedTrait, lengthOfSerializedTrait); string[] data = serializedTrait.Split(new[] { TraitSeparator }, StringSplitOptions.None); traits.Add(new Trait(data[0], data[1])); } } return(traits); }
private List <Trait> GetTraits(SourceFileLocation nativeSymbol) { var traits = new List <Trait>(); // ReSharper disable once LoopCanBeConvertedToQuery foreach (SourceFileLocation nativeTraitSymbol in _allTraitSymbols) { // TODO bring down to logarithmic complexity (binary search for finding a symbol, collect all matching symbols after and before) if (nativeSymbol.Symbol.StartsWith(nativeTraitSymbol.TestClassSignature)) { int lengthOfSerializedTrait = nativeTraitSymbol.Symbol.Length - nativeTraitSymbol.IndexOfSerializedTrait - TraitAppendix.Length; string serializedTrait = nativeTraitSymbol.Symbol.Substring(nativeTraitSymbol.IndexOfSerializedTrait, lengthOfSerializedTrait); string[] data = serializedTrait.Split(new[] { TraitSeparator }, StringSplitOptions.None); traits.Add(new Trait(data[0], data[1])); } } return(traits); }
private List <Trait> GetTraits(SourceFileLocation nativeSymbol, IEnumerable <SourceFileLocation> allTraitSymbols) { var traits = new List <Trait>(); // ReSharper disable once LoopCanBeConvertedToQuery foreach (SourceFileLocation nativeTraitSymbol in allTraitSymbols) { int indexOfSerializedTrait = nativeTraitSymbol.Symbol.LastIndexOf("::", StringComparison.Ordinal) + "::".Length; string testClassSignature = nativeTraitSymbol.Symbol.Substring(0, indexOfSerializedTrait - "::".Length); if (nativeSymbol.Symbol.StartsWith(testClassSignature)) { int lengthOfSerializedTrait = nativeTraitSymbol.Symbol.Length - indexOfSerializedTrait - TraitAppendix.Length; string serializedTrait = nativeTraitSymbol.Symbol.Substring(indexOfSerializedTrait, lengthOfSerializedTrait); string[] data = serializedTrait.Split(new[] { TraitSeparator }, StringSplitOptions.None); traits.Add(new Trait(data[0], data[1])); } } return(traits); }