public void GivenAQueryWithTwoFilters_WhenBuildingTheList_AppropriateFiltersAreConverted() { var filter1 = new CustomerFilter { Environment_ServerName = "Env1", Gender = "M", State = "CA", StoreID = "1234" }; var filter2 = new CustomerFilter { Environment_ServerName = "Env2", Gender = "F", State = "CT", StoreID = "4231" }; var visitTrackerReportSpecification = new ReportSpecification <CustomerFilter, CustomerVisitTracker>(DateTime.UtcNow, DateTime.UtcNow, ReportResolution.Day, filter1, filter2); Assert.AreEqual(2, visitTrackerReportSpecification.FilterCombinations.Count()); Assert.AreEqual(1, visitTrackerReportSpecification.FilterCombinations.ElementAt(0).Filters.Count()); Assert.AreEqual(visitTrackerReportSpecification.FilterCombinations.Count(fs => fs.Filters.Contains( string.Format("ENVIRONMENT_SERVERNAME::ENV1,,GENDER::M,,STATE::CA,,STOREID::1234"))), 1); }
public void GivenAQueryWithTwoFilters_WhenBuildingTheList_AppropriateFiltersAreConverted() { var filter1 = new CustomerFilter { Environment_ServerName = "Env1", Gender = "M", State = "CA", StoreID = "1234" }; var filter2 = new CustomerFilter { Environment_ServerName = "Env2", Gender = "F", State = "CT", StoreID = "4231" }; var visitTrackerReportSpecification = new ReportSpecification <CustomerFilter, CustomerVisitTracker>(DateTime.Now, DateTime.UtcNow, ReportResolution.Minute, filter1, filter2); Assert.AreEqual(2, visitTrackerReportSpecification.FilterCombinations.Count()); Assert.AreEqual(1, visitTrackerReportSpecification.FilterCombinations.ElementAt(0).Filters.Count()); }
public void GivenAQueryWithTwoFilters_WhenBuildingTheList_AppropriateFiltersAreConverted() { var filter1 = new CustomerFilter { Environment_ServerName = "Env1", Gender = "M", State = "CA", StoreID = "1234" }; var filter2 = new CustomerFilter { Environment_ServerName = "Env2", Gender = "F", State = "CT", StoreID = "4231" }; var visitTrackerReportSpecification = new ReportSpecification<CustomerFilter, CustomerVisitTracker>(DateTime.Now, DateTime.UtcNow, ReportResolution.Minute, filter1, filter2); Assert.AreEqual(2, visitTrackerReportSpecification.FilterCombinations.Count()); Assert.AreEqual(4, visitTrackerReportSpecification.FilterCombinations.ElementAt(0).Filters.Count()); }
public void GivenAFilterListWithEmptyFilters_WhenBuildingAReportSpecification_EmptyObjectValuesAreIgnored() { List<object> filtersWithTwoEmptyObjects = new List<object> { new FilteringStringFake(null,string.Empty), new FilteringStringFake("A","B"), new FilteringStringFake(null,null) }; var specification = new ReportSpecification(new[] {typeof (CustomerAgeTracker)}, filtersWithTwoEmptyObjects, DateTime.UtcNow, DateTime.UtcNow.AddDays(-100), ReportResolution.Day); Assert.AreEqual(1, specification.FilterCombinations.Count()); }
GivenAQueryWithTrackerProperties_WhenBuildingTheListOfTrackersToTrack_OnlyTheAppropriateCountersAreCounted() { var visitTrackerReportSpecification = new ReportSpecification <CustomerFilter, CustomerAgeTracker>(DateTime.Now, DateTime.UtcNow, ReportResolution.Minute); Assert.AreEqual(3, visitTrackerReportSpecification.Counters.Count()); }
public void GivenAQueryWithTrackerProperties_WhenBuildingTheListOfTrackersToTrack_OnlyTheAppropriateCountersAreCounted() { var visitTrackerReportSpecification = new ReportSpecification<CustomerFilter, CustomerAgeTracker>(DateTime.Now, DateTime.UtcNow, ReportResolution.Minute); Assert.AreEqual(3, visitTrackerReportSpecification.Counters.Count()); }
public void FirstTest() { var specification = new ReportSpecification(new[] {typeof (CustomerAgeTracker)}, DateTime.UtcNow.AddDays(-100), DateTime.UtcNow, ReportResolution.Hour); Assert.IsTrue(specification.Counters.Any()); string serializedObject = JsonConvert.SerializeObject(specification, Formatting.Indented); Console.WriteLine(serializedObject); }
public AggregationResults <T1> Report(DateTime fromUtc, DateTime toUtc, ReportResolution resolution, TimeSpan?offsetTotalsByHours) { var reportSpecs = new ReportSpecification <T, T1>(fromUtc, toUtc, resolution, Filter); if (offsetTotalsByHours != null) { reportSpecs.OffsetTotalsByHours = offsetTotalsByHours.GetValueOrDefault(); } return(Reporter <T, T1> .Report(fromUtc, toUtc, reportSpecs)); }
//[TestMethod] This is a bad test. This assumes there is already data in Graphene public void GivenATrackerWithNoCustomFields_WhenIncrementingTraker_ThenTotalReflectsIncrementAndNoOccurencesIsSet() { var generator = new MongoReportGenerator("mongodb://localhost:9001/Graphene", _fakeLogger); var spec = new ReportSpecification(new[] { typeof(PatientDemographicSearchMatchesTracker) }, DateTime.UtcNow.AddDays(-100), DateTime.UtcNow, ReportResolution.Hour); ITrackerReportResults newresult = generator.BuildReport(spec); Assert.IsTrue(newresult.AggregationResults.Any()); }
//[TestMethod] public void ReportOnTrackerWithBlankFilters() { var generator = new MongoReportGenerator("mongodb://localhost:9001/Graphene", _fakeLogger); var spec = new ReportSpecification(new[] { typeof(PatientDemographicSearchMatchesTracker) }, new[] { new OrgAndVendorFilter { Vendor = "", OrgId = "" } }, DateTime.UtcNow.AddDays(-100), DateTime.UtcNow, ReportResolution.Hour); ITrackerReportResults newresult = generator.BuildReport(spec); Assert.IsTrue(newresult.AggregationResults.Any()); }
public void BuildReport() { var reportSpec = new ReportSpecification { Headers = "Local Time,Volume", LocalTimeFormat = "HH:mm" }; var periods = Enumerable.Range(1, 24).Select(i => new PowerPeriod { Period = i, Volume = i }).ToArray(); var position = new Position { Day = SummerDay, Periods = periods }; var actual = PositionReport.BuildReport(reportSpec, position); var expectedLocalTimes = new[] { "23:00", "00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00" }; var expectedVolumes = Enumerable.Range(1, 24).ToArray(); var expectedContents = Enumerable.Repeat(reportSpec.Headers, 1).Concat(expectedLocalTimes.Zip(expectedVolumes, (t, v) => string.Format("{0},{1}", t, v))); Assert.That(actual.Day, Is.EqualTo(position.Day)); CollectionAssert.AreEqual(expectedContents, actual.Contents); }
GivenAQueryWithTrackerProperties_WhenBuildingTheListOfTrackersToTrack_OnlyTheAppropriateCountersAreCounted () { var visitTrackerReportSpecification = new ReportSpecification<CustomerFilter, TrackerWithCountProperties>(DateTime.Now, DateTime.UtcNow, ReportResolution.Day); //Assert.AreEqual(4, visitTrackerReportSpecification.Counters.Count()); }
public void GivenAQueryWithTwoFilters_WhenBuildingTheList_AppropriateFiltersAreConverted() { var filter1 = new CustomerFilter { Environment_ServerName = "Env1", Gender = "M", State = "CA", StoreID = "1234" }; var filter2 = new CustomerFilter { Environment_ServerName = "Env2", Gender = "F", State = "CT", StoreID = "4231" }; var visitTrackerReportSpecification = new ReportSpecification<CustomerFilter, CustomerVisitTracker>(DateTime.UtcNow, DateTime.UtcNow, ReportResolution.Day, filter1, filter2); Assert.AreEqual(2, visitTrackerReportSpecification.FilterCombinations.Count()); Assert.AreEqual(1, visitTrackerReportSpecification.FilterCombinations.ElementAt(0).Filters.Count()); Assert.AreEqual(visitTrackerReportSpecification.FilterCombinations.Count(fs => fs.Filters.Contains( string.Format("ENVIRONMENT_SERVERNAME::ENV1,,GENDER::M,,STATE::CA,,STOREID::1234"))),1); }
public void GivenATrackerWithNoCustomFields_WhenIncrementingTraker_ThenTotalReflectsIncrementAndNoOccurencesIsSet() { var generator = new MongoReportGenerator("mongodb://localhost:9001/Graphene"); var spec = new ReportSpecification(new[] {typeof (PatientDemographicSearchMatchesTracker)}, DateTime.UtcNow.AddDays(-100), DateTime.UtcNow, ReportResolution.Hour); ITrackerReportResults newresult = generator.GeneratorReport(spec); Assert.IsTrue(newresult.AggregationResults.Any()); }
public static AggregationResults <T1> Report(DateTime fromUtc, DateTime toUtc, ReportResolution resolution) { var reportSpecs = new ReportSpecification <EmptyFilter, T1>(fromUtc, toUtc, resolution); return(Reporter <EmptyFilter, T1> .Report(fromUtc, toUtc, reportSpecs)); }