static IssueGroup CreateSecondaryGroup()
        {
            var issueGroup = new IssueGroup(null, "secondary group");

            issueGroup.EnableProcessing();
            return(issueGroup);
        }
            public void Write([NotNull] IssueGroup issueGroup, [NotNull] IRowBuffer rowBuffer)
            {
                Assert.ArgumentNotNull(issueGroup, nameof(issueGroup));
                Assert.ArgumentNotNull(rowBuffer, nameof(rowBuffer));

                IssueCode issueCode = issueGroup.IssueCode;

                WriteText(rowBuffer, _issueDescriptionFieldIndex, issueGroup.IssueDescription);
                WriteText(rowBuffer, _issueCodeFieldIndex, issueCode?.ID);
                WriteText(rowBuffer, _issueCodeDescriptionFieldIndex, issueCode?.Description);
                WriteText(rowBuffer, _qualityConditionFieldIndex,
                          issueGroup.QualityCondition.Name);
                WriteText(rowBuffer, _qualityConditionDescriptionFieldIndex,
                          issueGroup.QualityCondition.Description,
                          warnIfTooLong: false);
                WriteText(rowBuffer, _testTypeFieldIndex,
                          GetTestTypeName(issueGroup.QualityCondition));
                WriteText(rowBuffer, _testNameFieldIndex,
                          GetTestName(issueGroup.QualityCondition));
                WriteText(rowBuffer, _testDescriptionFieldIndex,
                          GetTestDescription(issueGroup.QualityCondition));
                WriteText(rowBuffer, _issueTypeFieldIndex, GetIssueTypeValue(issueGroup));
                WriteText(rowBuffer, _stopConditionFieldIndex, issueGroup.StopCondition
                                                                                       ? "Yes"
                                                                                       : "No");
                WriteText(rowBuffer, _categoriesFieldIndex,
                          GetCategoryValue(issueGroup.QualityCondition));
                WriteText(rowBuffer, _affectedComponentFieldIndex, issueGroup.AffectedComponent);
                WriteText(rowBuffer, _urlFieldIndex, GetUrl(issueGroup.QualityCondition));

                rowBuffer.set_Value(_issueCountFieldIndex, issueGroup.IssueCount);
            }
        public void DoesNotInteractIfGroupingDisabled()
        {
            var disabledGroup = new IssueGroup(nextProvider, "disabled group");

            disabledGroup.AddIssue(new IssueSummary());
            Assert.IsFalse(nextProvider.GetIssueGroupCalled, "The provider should not be called by a disabled group.");
        }
 public void SetUp()
 {
     nextProvider   = new MockGroupingProvider();
     sourceProvider = new MockGroupingProvider();
     group          = new IssueGroup(nextProvider, "sut");
     node           = group;
     group.EnableProcessing();
 }
 private static IEnumerable <HtmlExceptionCategoryCount> GetHtmlExceptionCategories(
     [NotNull] IIssueStatistics issueStatistics,
     [NotNull] IssueGroup issueGroup)
 {
     return(issueStatistics.ExceptionCategories.Select(
                category => new HtmlExceptionCategoryCount(
                    category,
                    issueGroup.GetExceptionCount(category))));
 }
        public void DoesNotCallChildAddedEventHandlersIfNotEnabled()
        {
            var            disabledGroup = new IssueGroup(null, "disabledNode");
            IIssueTreeNode disabledNode  = disabledGroup;

            nextProvider.Group = CreateSecondaryGroup();

            disabledNode.ChildAdded += Forbidden <IssueTreeNodeEventArgs> ("node.ChildAdded");
            disabledGroup.AddIssue(new IssueSummary());
        }
        private static string GetTestIdentifier([NotNull] IssueGroup issueGroup)
        {
            QualityCondition qualityCondition = issueGroup.QualityCondition;

            return(qualityCondition.TestDescriptor.Name);

            //return qualityCondition.Description != null &&
            //       StringUtils.IsNotEmpty(qualityCondition.Description)
            //        ? qualityCondition.Description
            //        : qualityCondition.TestDescriptor.Name;
        }
        public void CallsTextChangedEventHandlersWhenIssueIsAddedToNonProcessingGroup()
        {
            var  inactiveGroup            = new IssueGroup(nextProvider, "sut");
            bool textChangedHandlerCalled = false;

            ((IIssueTreeNode)inactiveGroup).TextChanged += delegate {
                textChangedHandlerCalled = true;
            };

            inactiveGroup.AddIssue(new IssueSummary());
            Assert.IsTrue(textChangedHandlerCalled, "The event handler was not called.");
        }
        public void LeavesFilteredCorrectly()
        {
            var            leafGroup = new IssueGroup(NullGroupingProvider.Instance, "sut");
            IIssueTreeNode leafNode  = leafGroup;
            var            issue     = new IssueSummary();

            leafGroup.AddIssue(issue);

            var children = leafNode.Children;

            Assert.That(children.Contains(issue));
            Assert.AreEqual(1, children.Count, "The group contained too many issues.");
        }
        public void PassesIssueSummaryToNewGroupDuringEnableProcessing()
        {
            var disabledGroup = new IssueGroup(nextProvider, "sut");

            // "prime" the tree of groups
            nextProvider.Group = CreateSecondaryGroup();

            var probe = new IssueSummary();

            disabledGroup.AddIssue(probe);
            disabledGroup.EnableProcessing();
            var issues = ((IIssueTreeNode)nextProvider.Group).Children;

            Assert.IsTrue(issues.Contains(probe), "The issue was not added to the new group.");
        }
        public void NoEventsCalledForIssuesAddedBeforeProcessingEnabled()
        {
            var            localGroup = new IssueGroup(null, "sut");
            IIssueTreeNode localNode  = localGroup;

            localNode.ChildAdded += Forbidden <IssueTreeNodeEventArgs> ("node.ChildAdded");
            var issue = new IssueSummary();

            localGroup.AddIssue(issue);

            var children = localNode.Children;

            Assert.That(children.Contains(issue));
            Assert.AreEqual(1, children.Count, "The number of children was incorrect.");
        }
        public HtmlReportIssueGroup(
            [NotNull] IssueGroup issueGroup,
            int maximumIssueCount,
            [NotNull] string testIdentifier,
            [NotNull] IEnumerable <HtmlExceptionCategoryCount> htmlExceptionCategoryCounts)
        {
            Assert.ArgumentNotNull(issueGroup, nameof(issueGroup));
            Assert.ArgumentNotNullOrEmpty(testIdentifier, nameof(testIdentifier));
            Assert.ArgumentNotNull(htmlExceptionCategoryCounts,
                                   nameof(htmlExceptionCategoryCounts));
            Assert.ArgumentCondition(issueGroup.IssueCount <= maximumIssueCount,
                                     "Issue count must be <= maximum issue count",
                                     nameof(issueGroup));

            _issueGroup = issueGroup;
            PercentageOfMaximumIssueCount = maximumIssueCount == 0
                                                                ? 0 // zero-width bar will be drawn
                                                                : issueGroup.IssueCount * 100 /
                                            maximumIssueCount;
            ExceptionCategories = htmlExceptionCategoryCounts.ToList();
            ExceptionCount      = issueGroup.ExceptionCount;

            string url = issueGroup.QualityCondition.Url;

            if (url != null && StringUtils.IsNotEmpty(url))
            {
                UrlText = url;
                UrlLink = HtmlReportUtils.GetCompleteUrl(url);
            }

            if (issueGroup.IssueCode != null)
            {
                IssueCode            = issueGroup.IssueCode.ID;
                IssueCodeDescription = issueGroup.IssueCode.Description;
                HasIssueCode         = true;
            }

            string issueDescription = issueGroup.IssueDescription;

            HasIssueDescription = StringUtils.IsNotEmpty(issueDescription);

            Description = HasIssueDescription
                                              ? issueGroup.IssueDescription
                                              : IssueCodeDescription;

            TestIdentifier = testIdentifier;
        }
 public static CrawledIssueGroupKey Get(IssueGroup group)
 {
     return(group switch
     {
         IssueGroup.Org => Org,
         IssueGroup.Repo => Repo,
         IssueGroup.Author => Author,
         IssueGroup.Assignee => Assignee,
         IssueGroup.Label => Label,
         IssueGroup.Milestone => Milestone,
         IssueGroup.Area => Area,
         IssueGroup.AreaNode => AreaNode,
         IssueGroup.AreaUnder => AreaUnder,
         IssueGroup.AreaLead => AreaLead,
         IssueGroup.AreaOwner => AreaOwner,
         _ => throw new Exception($"Unexpected group {group}"),
     });
Exemple #14
0
        internal static void WriteIssue(string fromEntity,
                                        string toEntity,
                                        ReportStatisticsStatisicsDetails.MigrationStatus status,
                                        ReportIssueType type,
                                        string id,
                                        string item,
                                        IssueGroup group,
                                        string msg)
        {
            Debug.Assert(ConverterMain.MigrationReport != null);

            // also add in per work item section only if it is work item issue
            if (group == IssueGroup.Wi)
            {
                ConverterMain.MigrationReport.Statistics.StatisicsDetails.AddToEntityStatistics(fromEntity, toEntity, status);
            }

            // add the error in migration report
            if (type != ReportIssueType.Info)
            {
                ConverterMain.MigrationReport.WriteIssue(id, msg, item, null, group.ToString(), type, null);
            }
        }
Exemple #15
0
 public IssueGroup GetIssueGroup(IssueGroup parent, IssueSummary issue)
 {
     GetIssueGroupCalled = true;
     return(Group);
 }
 public CrawledIssueGroupKey(IssueGroup group, Func <CrawledIssue, IEnumerable <string> > grouper)
 {
     Group         = group;
     _multiGrouper = grouper;
 }
 public CrawledIssueGroupKey(IssueGroup group, Func <CrawledIssue, string> grouper)
 {
     Group          = group;
     _singleGrouper = grouper;
 }
 private static string GetIssueTypeValue([NotNull] IssueGroup issueGroup)
 {
     return(issueGroup.Allowable
                                    ? "Warning"
                                    : "Error");
 }