public void UninitializedIssueTestPasses()
 {
     var uninitialised = new ProjectIssue(s_Descriptor, "dummy issue", IssueCategory.Code);
     Assert.AreEqual(string.Empty, uninitialised.filename);
     Assert.AreEqual(string.Empty, uninitialised.relativePath);
     Assert.AreEqual(string.Empty, uninitialised.GetCallingMethod());
     Assert.AreEqual(string.Empty, uninitialised.name);
     Assert.False(uninitialised.isPerfCriticalContext);
 }
        public bool Match(ProjectIssue issue)
        {
            // return false if the issue does not match one of these criteria:
            // - assembly name, if applicable
            // - area
            // - is not muted, if enabled
            // - critical context, if enabled/applicable

            Profiler.BeginSample("MatchAssembly");
            var matchAssembly = !activeView.desc.showAssemblySelection ||
                                m_AssemblySelection != null &&
                                (m_AssemblySelection.Contains(issue.GetCustomProperty((int)CodeProperty.Assembly)) ||
                                 m_AssemblySelection.ContainsGroup("All"));

            Profiler.EndSample();
            if (!matchAssembly)
            {
                return(false);
            }

            Profiler.BeginSample("MatchArea");
            var matchArea = !activeView.desc.showAreaSelection ||
                            m_AreaSelection.ContainsAny(issue.descriptor.area.Split('|')) ||
                            m_AreaSelection.ContainsGroup("All");

            Profiler.EndSample();
            if (!matchArea)
            {
                return(false);
            }

            if (!m_Preferences.mutedIssues && activeView.desc.showMuteOptions)
            {
                Profiler.BeginSample("IsMuted");
                var muted = m_ProjectAuditor.config.GetAction(issue.descriptor, issue.GetCallingMethod()) ==
                            Rule.Severity.None;
                Profiler.EndSample();
                if (muted)
                {
                    return(false);
                }
            }

            if (activeView.desc.showCritical &&
                m_Preferences.onlyCriticalIssues &&
                !issue.isPerfCriticalContext)
            {
                return(false);
            }

            return(m_TextFilter.Match(issue));
        }