예제 #1
0
        public void GetMeasurements_WhenGivenRealDataDirectory_ReturnsExpectedMeasurements()
        {
            // Arrange
            var sut    = new FilesystemEventDataFetcher();
            var events = sut.FetchEvents(@"..\..\TestData\archive")
                         .ToList();
            var odd = events.Single(e => e.Opponent == "Odd");

            // Act
            var res = sut.GetMeasurements(odd)
                      .ToList();

            // Assert
            res.Count.Should().Be(3, "there are three measurements in this directory");
            res.All(m => m.EventId == 438523).Should().BeTrue("all measurements should return the same event id");
            res.All(m => m.MeasurementTime.Year == 2015 && m.MeasurementTime.Month == 6 && m.MeasurementTime.Day == 30)
            .Should()
            .BeTrue("all measurements should have the same date");
            res.Count(m => m.MeasurementTime.Hour == 12 && m.MeasurementTime.Minute == 12)
            .Should()
            .Be(1, "only one of the measurements should match");
            res.Count(m => m.MeasurementTime.Hour == 12 && m.MeasurementTime.Minute == 42)
            .Should()
            .Be(1, "only one of the measurements should match");
            res.Count(m => m.MeasurementTime.Hour == 13 && m.MeasurementTime.Minute == 12)
            .Should()
            .Be(1, "only one of the measurements should match");
        }
예제 #2
0
        static void Main(string[] args)
        {
            // Ikke akkurat dependency injection
            using (var context = new TellerContext())
            {
                var eventRepo         = new EventRepository(context);
                var measurementRepo   = new MeasurementRepository(context);
                var eventFetcher      = new FilesystemEventDataFetcher();
                var measurementReader = new MeasurementReader();
                var fileArchiver      = new FileArchiver();

                var ingestor = new MeasurementIngestor(eventRepo, measurementRepo, eventFetcher, measurementReader, fileArchiver);

                ingestor.ReadAndIngestData();
            }

            using (var context = new TellerContext())
            {
                var eventRepo = new EventRepository(context);

                var allEvents = eventRepo.GetAll()
                                .ToList();

                var test = new RenderTest();

                foreach (var bsEvent in allEvents)
                {
                    test.Render(bsEvent);
                }
            }
        }
예제 #3
0
        public void FetchEvents_WhenGivenRealDataDirectory_ReturnsExpectedObjects()
        {
            // Arrange
            var sut = new FilesystemEventDataFetcher();

            // Act
            var res = sut.FetchEvents(@"..\..\TestData\archive")
                      .ToList();

            // Assert
            res.Count.Should().Be(3, "we have three directories with eventinfo.properties files");
        }
예제 #4
0
        public void GetMeasurements_WhenGivenRealDataDirectory_ReturnsExpectedMeasurements()
        {
            // Arrange
            var sut    = new FilesystemEventDataFetcher();
            var events = sut.FetchEvents(@"..\..\TestData\storage\2015")
                         .ToList();
            var vikingur = events.Single(e => e.Opponent == "Vikingur");

            // Act
            var res = sut.GetMeasurements(vikingur)
                      .ToList();

            // Assert
            res.Count.Should().Be(3, "there are 3 measurements in this directory");
            res.All(m => m.EventId == 467263).Should().BeTrue("all measurements should return the same event id");
        }
예제 #5
0
        static void Main(string[] args)
        {
            var sw = new Stopwatch();

            sw.Start();

            SetupTraceListeners();

            List <BillettServiceEvent> updatedEvents;

            // Ikke akkurat dependency injection
            using (var context = new TellerContext())
            {
                var eventRepo         = new EventRepository(context);
                var measurementRepo   = new MeasurementRepository(context);
                var eventFetcher      = new FilesystemEventDataFetcher();
                var measurementReader = new MeasurementReader();
                var fileArchiver      = new FileArchiver();

                var ingestor = new MeasurementIngestor(eventRepo, measurementRepo, eventFetcher, measurementReader, fileArchiver);

                updatedEvents = ingestor.ReadAndIngestData().ToList();
            }

            Trace.TraceInformation("{0} events updated: {1}", updatedEvents.Count, String.Join(", ", updatedEvents.Select(e => e.EventNumber)));

            using (var context = new TellerContext())
            {
                var eventRepo = new EventRepository(context);

                var allEvents = eventRepo.GetAll()
                                //.Where(e => updatedEvents.Any(ue => ue.EventNumber == e.EventNumber))
                                .ToList();

                var missingFileEvents =
                    allEvents.Where(
                        ev =>
                        !File.Exists(Path.Combine(StautConfiguration.Current.StaticImageDirectory,
                                                  ev.EventNumber + ".png")))
                    .ToList();

                var eventsToRender =
                    missingFileEvents.Concat(
                        allEvents.Where(
                            ae =>
                            !missingFileEvents.Contains(ae) &&
                            updatedEvents.Any(ue => ue.EventNumber == ae.EventNumber))).ToList();

                var test = new RenderTest();

                foreach (var bsEvent in eventsToRender)
                {
                    test.Render(bsEvent);
                }
            }

            sw.Stop();
            Trace.TraceInformation("Ingest process complete, took {0}ms", sw.ElapsedMilliseconds);

            Trace.Flush();
            Trace.Close();
        }