public void UnknownDeclarationUseLoadingTest() { var walker = SetupDeclarationUseWalker(); var node = SyntaxTreeHelper.GetTypeSyntax("Unknown"); var declarationUse = walker.Visit(node); Assert.NotNull(declarationUse); Assert.IsType <UnknownDeclarationUse>(declarationUse); Assert.NotNull(declarationUse.Declaration); Assert.IsType <UnknownDeclaration>(declarationUse.Declaration); }
public void GenericParameterDeclarationUseLoadingTest() { var declarationUseStatement = "TName"; IGenericParameterDeclaration genericParameterDeclaration = null; var walker = SetupDeclarationUseWalker(ctx => { genericParameterDeclaration = SetupGenericParameterDeclaration(ctx, declarationUseStatement); }); var node = SyntaxTreeHelper.GetTypeSyntax(declarationUseStatement); var declarationUse = walker.Visit(node); Assert.NotNull(declarationUse); Assert.IsType <GenericParameterDeclarationUse>(declarationUse); Assert.Same(genericParameterDeclaration, declarationUse.Declaration); }
public void GenericDeclarationUseLoadingTest(string declarationName, string genericParametersText, int genericParams) { var declarationMock = new Mock <IClassDeclaration>(); var walker = SetupDeclarationUseWalker(resolverSetup: resolver => { if (genericParams == 0) { resolver .Setup(r => r.Resolve(declarationName, It.IsAny <IDeclaration <SyntaxNode> >())) .Returns(declarationMock.Object); resolver .Setup(r => r.Resolve(declarationName, Array.Empty <IDeclarationUse <SyntaxNode> >(), It.IsAny <IDeclaration <SyntaxNode> >())) .Returns(declarationMock.Object); } else { resolver .Setup(r => r.Resolve(declarationName, It.IsAny <IReadOnlyList <IDeclarationUse <SyntaxNode> > >(), It.IsAny <IDeclaration <SyntaxNode> >())) .Returns(declarationMock.Object); } }); var node = SyntaxTreeHelper.GetTypeSyntax($"{declarationName}{genericParametersText}"); var declarationUse = walker.Visit(node); Assert.NotNull(declarationUse); Assert.Same(declarationMock.Object, declarationUse.Declaration); var genericDeclarationUse = Assert.IsType <GenericDeclarationUse>(declarationUse); Assert.NotNull(genericDeclarationUse.GenericParameters); Assert.Equal(genericParams, genericDeclarationUse.GenericParameters.Count); foreach (var genericParameter in genericDeclarationUse.GenericParameters) { Assert.IsType <PredefinedDeclarationUse>(genericParameter); } }
public void ArrayDeclarationUseLoadingTest(string declarationName, string arrayText, int dimCount) { var declaration = Mock.Of <IClassDeclaration>(); var walker = SetupDeclarationUseWalker(resolverSetup: resolver => { resolver .Setup(r => r.Resolve(declarationName, It.IsAny <IDeclaration <SyntaxNode> >())) .Returns(declaration); }); var node = SyntaxTreeHelper.GetTypeSyntax($"{declarationName}{arrayText}"); var declarationUse = walker.Visit(node); Assert.NotNull(declarationUse); Assert.Same(declaration, declarationUse.Declaration); Assert.NotNull(declarationUse.ArraySpecification); Assert.NotNull(declarationUse.ArraySpecification.SyntaxNodeProvider); Assert.Equal(dimCount, declarationUse.ArraySpecification.ArrayCount); }