/// <summary> /// Matches the type of the symbol with the membertype of the candidates /// </summary> /// <param name="symbol">The symbol.</param> /// <returns>True if there are any candidates left</returns> private IEnumerable <IBaseConfigModel> MatchSymbolType(ISymbol symbol, IEnumerable <IBaseConfigModel> candidates) { var matches = new List <IBaseConfigModel>(); foreach (Member candidate in candidates) { if (SymbolMatcher.MatchSymbolKind(symbol, candidate.MemberType)) { matches.Add(candidate); } } return(matches); }
public void MatchSymbolKindTest() { // Arrange var helpers = new TestHelpers(); var fieldMember = helpers.GetMockMember(Constants.PrivateFieldMember, "TestMemberName"); var methodMember = helpers.GetMockMember(Constants.PublicMethodMember, "TestMemberName"); var namedTypeMember = helpers.GetMockMember(Constants.PublicNamedTypeMember, "TestMemberName"); var propertyMember = helpers.GetMockMember(Constants.PublicPropertyMember, "TestMemberName"); var eventMember = helpers.GetMockMember(Constants.PublicEventMember, "TestMemberName"); // Act var fieldMatch = SymbolMatcher.MatchSymbolKind(fieldMember, MemberType.Field); var methodMatch = SymbolMatcher.MatchSymbolKind(methodMember, MemberType.Method); var namedTypeMatch = SymbolMatcher.MatchSymbolKind(namedTypeMember, MemberType.Class); var propertyMatch = SymbolMatcher.MatchSymbolKind(propertyMember, MemberType.Property); var eventMatch = SymbolMatcher.MatchSymbolKind(eventMember, MemberType.Event); var anyMatch = SymbolMatcher.MatchSymbolKind(fieldMember, MemberType.Any); var noFieldMatch = SymbolMatcher.MatchSymbolKind(fieldMember, MemberType.Property); var noMethodMatch = SymbolMatcher.MatchSymbolKind(methodMember, MemberType.Field); var noNamedTypeMatch = SymbolMatcher.MatchSymbolKind(namedTypeMember, MemberType.Field); var noPropertyMatch = SymbolMatcher.MatchSymbolKind(propertyMember, MemberType.Field); var noEventMatch = SymbolMatcher.MatchSymbolKind(eventMember, MemberType.Field); // Assert Assert.IsTrue(fieldMatch); Assert.IsTrue(methodMatch); Assert.IsTrue(namedTypeMatch); Assert.IsTrue(propertyMatch); Assert.IsTrue(eventMatch); Assert.IsTrue(anyMatch); Assert.IsFalse(noFieldMatch); Assert.IsFalse(noMethodMatch); Assert.IsFalse(noNamedTypeMatch); Assert.IsFalse(noPropertyMatch); Assert.IsFalse(noEventMatch); }