Beispiel #1
0
        public void CollectStats()
        {
            var dataMock = new DataServiceMock();
            var timeMock = new MockedTimeSource();

            var authService  = new VitaAuthService(dataMock);
            var trackService = new TrackingService(timeMock);

            ITrackingReport report = null;

            trackService.Reports.Subscribe(x => report = x);

            ITrackingSession session = SessionTrackingScenarioOne(timeMock, trackService);

            trackService.PublishReports();

            Assert.IsNotNull(report);
            Assert.AreEqual(report.Topics.Count(), 3);
            Assert.IsTrue(report.Topics.All(x => x.ImpressionCount == 1));
            Assert.AreEqual(report.Topics[0].Url, "person");
            Assert.AreEqual(report.Topics[0].TopicDetail, "S");
            Assert.AreEqual(report.Topics[0].ImpressionTimeSpan, TimeSpan.FromSeconds(20 + 12 + 0));
            Assert.AreEqual(report.Topics[1].ImpressionTimeSpan, TimeSpan.FromSeconds(20 + 60 + 60));
            Assert.AreEqual(report.Topics[2].ImpressionTimeSpan, TimeSpan.FromSeconds(2 + 18 + 42));
        }
Beispiel #2
0
        private static ITrackingSession SessionTrackingScenarioOne(MockedTimeSource timeMock, TrackingService trackService)
        {
            var session = trackService.GetSession("Test", Guid.NewGuid().ToString(), "1.1.1.1");

            var startDate = new DateTime(2020, 2, 2, 12, 0, 13);

            var track1 = new TrackTopic[]
            {
                new TrackTopic {
                    Topic = "Person 1", Start = 0, End = 1
                },
                new TrackTopic {
                    Topic = "Person 2", Start = 0, End = 1
                },
                new TrackTopic {
                    Topic = "Person 3", Start = 0, End = 0.1
                },
            };

            timeMock.Now = startDate + TimeSpan.FromSeconds(10);
            session.RecordTopics(new TrackTopicsEvent("person", "S", track1));
            var track2 = new TrackTopic[]
            {
                new TrackTopic {
                    Topic = "Person 1", Start = 0.8, End = 1
                },
                new TrackTopic {
                    Topic = "Person 2", Start = 0, End = 1
                },
                new TrackTopic {
                    Topic = "Person 3", Start = 0, End = 0.3
                },
            };

            timeMock.Now = startDate + TimeSpan.FromSeconds(30);
            session.RecordTopics(new TrackTopicsEvent("person", "S", track2));
            var track3 = new TrackTopic[]
            {
                new TrackTopic {
                    Topic = "Person 2", Start = 0, End = 1
                },
                new TrackTopic {
                    Topic = "Person 3", Start = 0, End = 0.7
                },
            };

            timeMock.Now = startDate + TimeSpan.FromSeconds(300);
            session.RecordTopics(new TrackTopicsEvent("person", "S", track3));
            return(session);
        }