Exemple #1
0
        public void VerifyDoesNotShowForNoSymbol()
        {
            // Arrange
            var analyzer = new MemberImplementsInterfaceAnalyzer();

            // Act
            var shouldShow = analyzer.Show(symbol: null);

            // Assert
            Assert.IsFalse(shouldShow, $"The analyzer will be unexpectedly shown for no symbol");
        }
Exemple #2
0
        public void VerifyDoesNotShowForStaticMembers(SymbolKind symbolKind)
        {
            // Arrange
            var memberMock = SetupMemberMock(symbolKind, TypeKind.Unknown, isStatic: true);
            var analyzer   = new MemberImplementsInterfaceAnalyzer();

            // Act
            var shouldShow = analyzer.Show(memberMock.Object);

            // Assert
            Assert.IsFalse(shouldShow, $"The analyzer will be unexpectedly shown for static symbol '{symbolKind}'");
        }
Exemple #3
0
        public void VerifyDoesNotShowForNonMembers(SymbolKind symbolKind)
        {
            // Arrange
            var symbolMock = new Mock <ISymbol>();

            symbolMock.Setup(s => s.SymbolKind).Returns(symbolKind);
            var analyzer = new MemberImplementsInterfaceAnalyzer();

            // Act
            var shouldShow = analyzer.Show(symbolMock.Object);

            // Assert
            Assert.IsFalse(shouldShow, $"The analyzer will be unexpectedly shown for symbol '{symbolKind}'");
        }
Exemple #4
0
        public void VerifyShowsForSupportedTypes(
            [ValueSource(nameof(ValidSymbolKinds))] SymbolKind symbolKind,
            [ValueSource(nameof(ValidTypeKinds))] TypeKind typeKind)
        {
            // Arrange
            var memberMock = SetupMemberMock(symbolKind, typeKind, isStatic: false);
            var analyzer   = new MemberImplementsInterfaceAnalyzer();

            // Act
            var shouldShow = analyzer.Show(memberMock.Object);

            // Assert
            Assert.IsTrue(shouldShow, $"The analyzer will not be shown for symbol '{symbolKind}' and '{typeKind}'");
        }
Exemple #5
0
        public void VerifyDoesNotShowForUnsupportedTypes(
            [ValueSource(nameof(ValidSymbolKinds))] SymbolKind symbolKind,
            [ValueSource(nameof(InvalidTypeKinds))] TypeKind typeKind)
        {
            // Arrange
            var memberMock = SetupMemberMock(symbolKind, typeKind, isStatic: true);
            var analyzer   = new MemberImplementsInterfaceAnalyzer();

            // Act
            var shouldShow = analyzer.Show(memberMock.Object);

            // Assert
            Assert.IsFalse(shouldShow, $"The analyzer will be unexpectedly shown for symbol '{symbolKind}' and '{typeKind}'");
        }
Exemple #6
0
        public void VerifyReturnsOnlyInterfaceMembers()
        {
            // Arrange
            var symbol   = SetupSymbolForAnalysis(typeof(TestClass), nameof(TestClass.TestMethod));
            var analyzer = new MemberImplementsInterfaceAnalyzer();

            // Act
            var results = analyzer.Analyze(symbol, new AnalyzerContext());

            // Assert
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count());
            var result = results.FirstOrDefault() as IMethod;

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.DeclaringTypeDefinition);
            Assert.AreEqual(TypeKind.Interface, result.DeclaringTypeDefinition.Kind);
            Assert.AreEqual(nameof(ITestInterface), result.DeclaringTypeDefinition.Name);
        }