protected override void OnTestMethod(SyntaxNodeAnalysisContext context, MethodDeclarationSyntax methodDeclaration, bool isDataTestMethod)
        {
            SyntaxList <AttributeListSyntax> attributeLists = methodDeclaration.AttributeLists;

            Location categoryLocation;


            ClassDeclarationSyntax classDeclaration = methodDeclaration.Parent as ClassDeclarationSyntax;

            if (classDeclaration != null)
            {
                var exceptions = AdditionalFilesHelper.LoadExceptions(FileName);
                if (exceptions.Contains($"{classDeclaration.Identifier.Text}.{methodDeclaration.Identifier.Text}"))
                {
                    return;
                }
            }

            if (Helper.HasAttribute(attributeLists, context, MsTestFrameworkDefinitions.TestCategoryAttribute, out categoryLocation, out string category))
            {
                List <string> allowedCategories = AdditionalFilesHelper.GetValuesFromEditorConfig(Rule.Id, @"allowed_test_categories");
                if (!allowedCategories.Contains(category.Replace("\"", string.Empty)))
                {
                    Diagnostic diagnostic = Diagnostic.Create(Rule, categoryLocation);
                    context.ReportDiagnostic(diagnostic);
                }
            }
            else
            {
                Diagnostic diagnostic = Diagnostic.Create(Rule, methodDeclaration.Identifier.GetLocation());
                context.ReportDiagnostic(diagnostic);
            }
        }
        protected override void OnInitializeAnalyzer(AnalyzerOptions options, Compilation compilation)
        {
            AdditionalFilesHelper helper = new AdditionalFilesHelper(options, compilation);

            _exceptions        = helper.LoadExceptions(FileName);
            _allowedCategories = helper.GetValuesFromEditorConfig(Rule.Id, @"allowed_test_categories");
        }
        protected override TestMethodImplementation OnInitializeTestMethodAnalyzer(AnalyzerOptions options, Compilation compilation, MsTestAttributeDefinitions definitions)
        {
            AdditionalFilesHelper helper = new AdditionalFilesHelper(options, compilation);

            var exceptions        = helper.LoadExceptions(FileName);
            var allowedCategories = helper.GetValuesFromEditorConfig(Rule.Id, @"allowed_test_categories").ToImmutableHashSet();

            return(new TestHasCategoryAttribute(exceptions, allowedCategories, definitions));
        }