/// <summary> /// Generate an declaration mock form the given parameters. /// </summary> /// <param name="nameSpace">The declaration name space.</param> /// <param name="name">The declaration name.</param> /// <param name="setup">The action delegate to do additional setup on the mock.</param> /// <returns>The mocked declaration.</returns> public static TDeclaration SetupDeclaration <TDeclaration>(string nameSpace, string name, Action <Mock <TDeclaration> > setup = null) where TDeclaration : class, IDeclaration <SyntaxNode> { var declarationMock = new Mock <TDeclaration>(); declarationMock.SetupGet(d => d.Name).Returns(name); declarationMock.SetupGet(d => d.DeclarationNameSpace).Returns(nameSpace); declarationMock.SetupGet(d => d.FullName).Returns(ADeclaration <SyntaxNode> .GetFullName(nameSpace, name)); setup?.Invoke(declarationMock); return(declarationMock.Object); }
public override void VisitNamespaceDeclaration(NamespaceDeclarationSyntax node) { var currentNameSpace = this.nameSpace.Peek(); this.nameSpace.Push(ADeclaration <SyntaxNode> .GetFullName(currentNameSpace, node.Name.ToString())); var currentUsingDirectives = this.usingDirectives.Peek(); this.usingDirectives.Push(new List <string>(currentUsingDirectives)); base.VisitNamespaceDeclaration(node); this.usingDirectives.Pop(); this.nameSpace.Pop(); }
private void Setup(IEnumerable <IDeclaration <SyntaxNode> > declarations) { foreach (var declaration in declarations) { var fullName = ADeclaration <SyntaxNode> .GetFullName(declaration.DeclarationNameSpace, declaration.Name); if (!this.declarationMap.TryGetValue(fullName, out var list)) { list = new List <IDeclaration <SyntaxNode> >(); this.declarationMap.Add(fullName, list); } list.Add(declaration); } }