Exemplo n.º 1
0
        public void T00_TimeZoneTest()
        {
            var cdt = new ContractDetailsTime(ContractDetails);
            var tz  = DateTimeZoneProviders.Tzdb.GetZoneOrNull(ContractDetails.TimeZoneId);

            Assert.Equal(tz, cdt.TimeZone);
            Assert.Equal(16, cdt.Events.Count);
        }
Exemplo n.º 2
0
        public async Task T03_ObservableAll()
        {
            var tz        = DateTimeZoneProviders.Tzdb.GetZoneOrNull(ContractDetails.TimeZoneId);
            var scheduler = new HistoricalScheduler();
            var cdt       = new ContractDetailsTime(ContractDetails, scheduler);
            var task      = cdt.ContractTimeObservable.ToList().ToTask();

            scheduler.Start(); // play all
            var list = await task;

            Assert.Equal(cdt.Events.Count + 1, list.Count);
        }
Exemplo n.º 3
0
        public async Task T02_ObservableTest()
        {
            var tz = DateTimeZoneProviders.Tzdb.GetZoneOrNull(ContractDetails.TimeZoneId);

            var dto       = new LocalDateTime(2018, 1, 1, 10, 0, 00).InZoneStrictly(tz).ToInstant().ToDateTimeOffset();
            var scheduler = new HistoricalScheduler(dto); // TestScheduler();

            var cdt = new ContractDetailsTime(ContractDetails, scheduler);

            var status = await cdt.ContractTimeObservable.FirstAsync();

            var dt1 = new LocalDateTime(2018, 1, 1, 9, 30, 0).InZoneStrictly(cdt.TimeZone);

            Assert.Equal(dt1, status.Previous.Time);
            Assert.Equal(ContractTimeStatus.Liquid, status.Previous.Status);
            var dt2 = new LocalDateTime(2018, 1, 1, 12, 0, 0).InZoneStrictly(cdt.TimeZone);

            Assert.Equal(dt2, status.Next.Time);
            Assert.Equal(ContractTimeStatus.Trading, status.Next.Status);
        }
Exemplo n.º 4
0
        public void T01_EventsTest()
        {
            var cdt = new ContractDetailsTime(ContractDetails);

            var status = cdt.Get(Instant.MinValue);

            Assert.Equal(null, status.Previous);
            Assert.Equal(new LocalDateTime(2018, 1, 1, 9, 0, 0).InZoneStrictly(cdt.TimeZone), status.Next.Time);
            Assert.Equal(ContractTimeStatus.Trading, status.Next.Status);

            var dt = new LocalDateTime(2018, 1, 1, 9, 0, 0).InZoneStrictly(cdt.TimeZone);

            status = cdt.Get(dt.ToInstant());
            Assert.Equal(dt, status.Previous.Time);
            Assert.Equal(ContractTimeStatus.Trading, status.Previous.Status);
            dt = new LocalDateTime(2018, 1, 1, 9, 30, 0).InZoneStrictly(cdt.TimeZone);
            Assert.Equal(dt, status.Next.Time);
            Assert.Equal(ContractTimeStatus.Liquid, status.Next.Status);

            status = cdt.Get(Instant.MaxValue);
            Assert.Equal(new LocalDateTime(2018, 1, 2, 17, 0, 0).InZoneStrictly(cdt.TimeZone), status.Previous.Time);
            Assert.Equal(ContractTimeStatus.Closed, status.Previous.Status);
            Assert.Equal(null, status.Next);
        }