public void MeasurementReaderSingleLineInputTest() { const string input = "2020-12-27T23:40:29.571091,M,M0,W0,M1,W1,M2,W2,M3,W3,M4,W4,M5,W5,M6,W6,M7,W7,M8,W8,M9,W9,CRC,0\n" + "2020-12-27T23:40:29.676928,M,2506,0,2496,8572,2503,8028,2506,8356,2506,8360,2508,8356,2501,8344,2503,8372,2491,8372,2498,8388,61392,1\n"; var stream = new StringStream(input); var measureReader = new MeasurementReader(stream.Reader); Assert.IsTrue(measureReader.HasNext(), "before asking for a measurement, HasNext is true"); var measurement = measureReader.NextMeasurement(); Assert.IsTrue(measureReader.CrcOk, "CRC is OK"); Assert.AreEqual(DateTime.Parse("2020-12-27T23:40:29.676928"), measurement.Timestamp, "Date parsed correctly"); Assert.AreEqual(2506, measurement.Value, "Correct value selected for #1"); Assert.AreEqual(0, measurement.Delay, "Correct delay selected for #1"); measurement = measureReader.NextMeasurement(); Assert.AreEqual(DateTime.Parse("2020-12-27T23:40:29.677028"), measurement.Timestamp, "TImestamp calculated correctly"); Assert.AreEqual(2496, measurement.Value, "Correct value selected for #2"); Assert.AreEqual(8572, measurement.Delay, "Correct ValueTuple selected for #2"); var measurementCount = 0; while (measureReader.HasNext()) { measurement = measureReader.NextMeasurement(); measurementCount++; } Assert.AreEqual(8, measurementCount, "8 more data points read"); Assert.AreEqual(DateTime.Parse("2020-12-27T23:40:29.677828"), measurement.Timestamp, "Last timestamp correctly calculated"); Assert.AreEqual(2498, measurement.Value, "Last value correctly selected"); Assert.AreEqual(8388, measurement.Delay, "Last delay correctly selected"); }
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); } } }
public void ReadMeasurement_WhenGivenGoodFile_ReturnsExpectedData() { // Arrange const string inputFile = @"..\..\TestData\438533_Viking_2015-09-08T10-57.xml"; var measurementFile = new MeasurementFile(inputFile); var sut = new MeasurementReader(); // Act var res = sut.ReadMeasurement(measurementFile); // Assert res.AmountSold.Should().Be(375); res.AmountSeasonTicket.Should().Be(8161); res.AmountAvailable.Should().Be(9610); res.AmountReserved.Should().Be(3280); res.AmountUnavailable.Should().Be(0); res.AmountTicketMaster.Should().Be(0); res.AmountUnknown.Should().Be(216); }
public void ReadMeasurement_WhenGivenGoodFile_ReturnsExpectedData() { // Arrange const string inputFile = @"..\..\TestData\archive\2015_LEAGUE_8_Odd_438523\438523_Odd_2015-06-30T12-12.xml"; var measurementFile = new MeasurementFile(inputFile); var sut = new MeasurementReader(); // Act var res = sut.ReadMeasurement(measurementFile); // Assert res.AmountSold.Should().Be(1352); res.AmountSeasonTicket.Should().Be(8098); res.AmountAvailable.Should().Be(9201); res.AmountReserved.Should().Be(2933); res.AmountUnavailable.Should().Be(0); res.AmountTicketMaster.Should().Be(0); res.AmountUnknown.Should().Be(61); }
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(); }