public void CanHideStacksFromStats() { _dataHelper.ResetProjectData(TestConstants.ProjectId); TimeSpan timeOffset = _projectRepository.GetDefaultTimeOffset(TestConstants.ProjectId); DateTime startDate = DateTime.UtcNow.Add(timeOffset).Date.AddDays(-120); DateTime endDate = DateTime.UtcNow.Add(timeOffset).Date; const int count = 50; var events = EventData.GenerateEvents(count, organizationId: TestConstants.OrganizationId, startDate: startDate, endDate: endDate, projectId: TestConstants.ProjectId, timeZoneOffset: timeOffset).ToList(); _eventPipeline.Run(events); var firstStack = _stackRepository.Where(es => es.ProjectId == TestConstants.ProjectId).OrderBy(es => es.FirstOccurrence).First(); firstStack.IsHidden = true; _stackRepository.Update(firstStack); var biggestStack = _stackRepository.Where(es => es.ProjectId == TestConstants.ProjectId && !es.IsHidden).OrderByDescending(es => es.TotalOccurrences).First(); biggestStack.IsHidden = true; _stackRepository.Update(biggestStack); _stackRepository.InvalidateHiddenIdsCache(TestConstants.ProjectId); long stackCount = _stackRepository.Where(s => !s.IsHidden).Count(); int countWithoutHidden = count - firstStack.TotalOccurrences - biggestStack.TotalOccurrences; var info = _eventStatsHelper.GetProjectEventStats(TestConstants.ProjectId, timeOffset, startDate, endDate); Assert.Equal(countWithoutHidden, info.Total); Assert.InRange(info.UniqueTotal, 1, count); Assert.Equal(stackCount, info.NewTotal); Assert.True(info.Stats.Count > 40); Assert.Equal(countWithoutHidden, info.Stats.Sum(ds => ds.Total)); Assert.Equal(stackCount, info.Stats.Sum(ds => ds.NewTotal)); }