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());
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        //[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());
        }
Ejemplo n.º 10
0
        //[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());
        }
Ejemplo n.º 11
0
        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);
            }
Ejemplo n.º 14
0
        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());
        }
Ejemplo n.º 15
0
        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));
        }