public void Fetch() { TimeRunner.Run(async(time, th) => { var downloader = new FakeElexonDownloader(); var dir = new FakeDirectory(th); var fetcher = new FetchPhyBmData(th, downloader, dir, time); var cts = new CancellationTokenSource(); Task unused = th.Run(async() => { await th.Delay(NodaTime.Duration.FromMinutes(60)).ConfigureAwait(th); cts.Cancel(); }); await fetcher.Start(false, cts.Token).ConfigureAwaitHideCancel(th); var reader = new PhyBmData.FpnReader(th, dir); Assert.Equal(1031 + 1023, await reader.CountAsync().ConfigureAwait(th)); var cldcwIdHash = EicIds.Hash("CLDCW-1"); var cldcwTask = (await reader.ReadAsync().ConfigureAwait(th)).Where(x => x.ResourceNameHash == cldcwIdHash); var cldcw = await cldcwTask.ToList().ConfigureAwait(th); Assert.Equal(4, cldcw.Count); Assert.Equal(new [] { 13.0, 11.0, 11.0, 9.0 }, cldcw.Select(x => x.LevelTo.Megawatts)); }, startInstant: NodaTime.Instant.FromUtc(2017, 8, 5, 22, 29)); }
public void Fetch() { TimeRunner.Run(async(time, th) => { var downloader = new FakeElexonDownloader(); var dir = new FakeDirectory(th); var fetcher = new FetchB1610(th, downloader, dir, time, null); var cts = new CancellationTokenSource(); Task unused = th.Run(async() => { await th.Delay(NodaTime.Duration.FromMinutes(5)).ConfigureAwait(th); cts.Cancel(); }); await fetcher.Start(cts.Token).ConfigureAwaitHideCancel(th); var reader = new B1610.Reader(th, dir); Assert.Equal(100 + 103, await reader.CountAsync().ConfigureAwait(th)); Assert.Equal(new B1610.Data("GRAI-6", Instant.FromUtc(2017, 7, 31, 23, 0), Power.FromKilowatts(226_200)), await(await reader.ReadAsync(0, 1)).First()); Assert.Equal(new B1610.Data("GRGBW-1", Instant.FromUtc(2017, 7, 31, 23, 30), Power.FromKilowatts(43_390)), await(await reader.ReadAsync(100 + 103 - 1, 100 + 103)).First()); }, startInstant: NodaTime.Instant.FromUtc(2017, 8, 10, 22, 30)); }
public void Fetch() { TimeRunner.Run(async(time, th) => { var downloader = new FakeElexonDownloader(); var dir = new FakeDirectory(th); var fetcher = new FetchFreq(th, downloader, dir, time); var cts = new CancellationTokenSource(); Task unused = th.Run(async() => { await th.Delay(NodaTime.Duration.FromMinutes(3)).ConfigureAwait(th); cts.Cancel(); }); await fetcher.Start(false, cts.Token).ConfigureAwaitHideCancel(th); var reader = new Freq.Reader(th, dir); Assert.Equal((60 + 2) * 4, await reader.CountAsync().ConfigureAwait(th)); var data = await(await reader.ReadAsync().ConfigureAwait(th)).ToList().ConfigureAwait(th); Assert.Equal((60 + 2) * 4, data.Count); Assert.Equal(new Freq.Data(NodaTime.Instant.FromUtc(2017, 8, 2, 11, 0, 15), Frequency.FromHertz(49.910)), data.First()); Assert.Equal(new Freq.Data(NodaTime.Instant.FromUtc(2017, 8, 2, 12, 2, 0), Frequency.FromHertz(50.040)), data.Last()); }, startInstant: NodaTime.Instant.FromUtc(2017, 8, 2, 12, 0)); }