Exemplo n.º 1
0
        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));
        }
Exemplo n.º 3
0
        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));
        }