本文整理汇总了C#中ExpressionSyntax.IsLeftSideOfAssignExpression方法的典型用法代码示例。如果您正苦于以下问题:C# ExpressionSyntax.IsLeftSideOfAssignExpression方法的具体用法?C# ExpressionSyntax.IsLeftSideOfAssignExpression怎么用?C# ExpressionSyntax.IsLeftSideOfAssignExpression使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExpressionSyntax
的用法示例。
在下文中一共展示了ExpressionSyntax.IsLeftSideOfAssignExpression方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetInvokedMethodsOfMock
public static IEnumerable<Fields> GetInvokedMethodsOfMock(ExpressionSyntax memberAccessExpresion, SemanticModel testSemanticModel, IEnumerable<SutInfo> suts)
{
var isLeftSideOfAssignExpression = memberAccessExpresion.IsLeftSideOfAssignExpression();
var symbol = testSemanticModel.GetSymbolInfo(memberAccessExpresion).Symbol;
if(symbol == null) return new Fields[0];
var refType = symbol.ContainingType;
var suitableSut = refType.GetSuitableSut(suts);
if (suitableSut == null) return new Fields[0];
var sutSubstitutionsByInterface = TestSemanticHelper.GetSubstitutions(refType);
var sutSubstitutionsByConcreteType = TestSemanticHelper.GetSubstitutions(suitableSut.SymbolInfo.Symbol);
var symbolSubstitutions = TestSemanticHelper.GetSubstitutions(symbol);
var sutSubstitutions = sutSubstitutionsByInterface.Concat(sutSubstitutionsByConcreteType)
.Concat(symbolSubstitutions)
.DistinctBy(x => x.Key)
.ToDictionary(x => x.Key, x => x.Value);
if (suitableSut.SemanticModel == null)
return new Fields[0];
var suitableSutSymbol = suitableSut.GetSuitableSutSymbol(symbol);
var sutFirstLocation = suitableSutSymbol.Locations.First();
var node = sutFirstLocation.GetMemberNode();
var allNodes = node.DescendantNodesAndSelf().Where(x => !x.Span.IsEmpty).ToList();
var allSyntax = new List<ExpressionSyntax>();
var count = int.MaxValue;
while (count != allSyntax.Count )
{
count = allSyntax.Count;
var methods = TestSemanticHelper.GetMethodsToConfigureMocks(allNodes).ToArray();
var properties = TestSemanticHelper.GetPropertiesToConfigureMocks(allNodes, methods, isLeftSideOfAssignExpression).ToArray();
allSyntax.AddRange(methods.Concat(properties).Distinct());
allSyntax = allSyntax.Distinct().ToList();
allNodes = allSyntax.SelectMany(syn => syn.DescendantNodesAndSelf().Where(x => !x.Span.IsEmpty))
.SelectMany(x => GetReferencedNodes(x, suitableSut))
.ToList();
}
var invokedMethodsOfMocks = GetInvokedMethodsOfMocks(allSyntax,
suitableSut.SemanticModel,
suitableSut,
testSemanticModel,
sutSubstitutions);
invokedMethodsOfMocks = invokedMethodsOfMocks.Where(DontHaveSetups(suitableSut));
return invokedMethodsOfMocks;
}