Esempio n. 1
0
    private static void PropertyMustBeReadOnly(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext)
    {
        if (!TestDetection.IsDerivedFromTestBase(syntaxNodeAnalysisContext))
        {
            return;
        }

        if (syntaxNodeAnalysisContext.Node is not PropertyDeclarationSyntax propertyDeclarationSyntax)
        {
            return;
        }

        if (propertyDeclarationSyntax.AccessorList?.Accessors.Any(IsMutable) == true)
        {
            // its read-only or const.
            syntaxNodeAnalysisContext.ReportDiagnostic(Diagnostic.Create(descriptor: Rule, propertyDeclarationSyntax.GetLocation()));
        }
    }
Esempio n. 2
0
    private static void FieldMustBeReadOnly(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext)
    {
        if (!TestDetection.IsDerivedFromTestBase(syntaxNodeAnalysisContext))
        {
            return;
        }

        if (syntaxNodeAnalysisContext.Node is not FieldDeclarationSyntax fieldDeclarationSyntax)
        {
            return;
        }

        if (fieldDeclarationSyntax.Modifiers.Any(SyntaxKind.ReadOnlyKeyword) || fieldDeclarationSyntax.Modifiers.Any(SyntaxKind.ConstKeyword))
        {
            // its read-only or const.
            return;
        }

        syntaxNodeAnalysisContext.ReportDiagnostic(Diagnostic.Create(descriptor: Rule, fieldDeclarationSyntax.GetLocation()));
    }
 private static bool IsTestMethodInClassNotDerivedFromTestBase(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, MethodDeclarationSyntax methodDeclarationSyntax)
 {
     return(TestDetection.IsTestMethod(syntaxNodeAnalysisContext: syntaxNodeAnalysisContext, methodDeclarationSyntax: methodDeclarationSyntax) &&
            !TestDetection.IsDerivedFromTestBase(syntaxNodeAnalysisContext));
 }