public void testWeeklySessionMultiDayOverlap() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "00:00:00"); //only on wed-sunday night settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Wednesday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Monday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //wed-monday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 19, 9, 43, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 20, 9, 43, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 21, 9, 43, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 22, 9, 43, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 16, 9, 43, 0, DateTimeKind.Utc))); //monday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 17, 9, 43, 0, DateTimeKind.Utc))); //tuesday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 18, 9, 43, 0, DateTimeKind.Utc))); }
public void testWeeklySessionMultiDayHours() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "07:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "15:00:00"); //only on monday-fri settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //Monday Scenarios Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 17, 6, 59, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 7, 30, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 15, 30, 0, DateTimeKind.Utc))); //Midweek Scenarios Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 19, 6, 59, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 19, 7, 30, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 19, 15, 30, 0, DateTimeKind.Utc))); //Friday Scenarios Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 21, 6, 59, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 21, 7, 30, 0, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 21, 15, 30, 0, DateTimeKind.Utc))); //Weekend Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 6, 59, 0, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 7, 30, 0, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 15, 30, 0, DateTimeKind.Utc))); }
public void IsSessionTime_should_return_true_when_USE_DATE_TIME_is_true_and_date_and_time_in_range() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "06:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "17:30:00"); settings.SetString(QuickFix.SessionSettings.USE_DATE_TIME, "Y"); settings.SetString(QuickFix.SessionSettings.TIME_ZONE, "Eastern Standard Time"); settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //a sunday Assert.IsFalse(sched.IsSessionTime(new DateTime(2019, 06, 23, 10, 00, 00, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2019, 06, 23, 06, 00, 00, DateTimeKind.Utc))); //a monday Assert.IsTrue(sched.IsSessionTime(new DateTime(2019, 06, 24, 10, 00, 00, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2019, 06, 24, 06, 00, 00, DateTimeKind.Utc))); //a tuesday Assert.IsTrue(sched.IsSessionTime(new DateTime(2019, 06, 25, 10, 00, 00, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2019, 06, 25, 06, 00, 00, DateTimeKind.Utc))); //a friday Assert.IsTrue(sched.IsSessionTime(new DateTime(2019, 06, 28, 10, 00, 00, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2019, 06, 28, 06, 00, 00, DateTimeKind.Utc))); //a saturday Assert.IsFalse(sched.IsSessionTime(new DateTime(2019, 06, 29, 10, 00, 00, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2019, 06, 29, 06, 00, 00, DateTimeKind.Utc))); }
public void testNextEndTime_Weekly() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "09:30:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "16:00:00"); settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); // Oct 15 and 22 are Mondays, 19 and 26 are Fridays Assert.AreEqual("20121019-16:00:00", sched.NextEndTime(new DateTime(2012, 10, 19, 15, 59, 59, DateTimeKind.Utc)).ToString(FMT)); Assert.AreEqual("20121019-16:00:00", sched.NextEndTime(new DateTime(2012, 10, 19, 16, 00, 00, DateTimeKind.Utc)).ToString(FMT)); Assert.AreEqual("20121026-16:00:00", sched.NextEndTime(new DateTime(2012, 10, 19, 16, 00, 01, DateTimeKind.Utc)).ToString(FMT)); // ========== // Settings file is specified in a zone (est, -5) settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "04:30:00"); // 09:30:00 utc settings.SetString(QuickFix.SessionSettings.END_TIME, "11:00:00"); // 16:00:00 utc settings.SetString(QuickFix.SessionSettings.TIME_ZONE, EASTERN_STANDARD_TIME_ZONE_ID); //-5 settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); sched = new QuickFix.SessionSchedule(settings); // Dec 14 and 21 are Fridays Assert.AreEqual("20121214-11:00:00", sched.NextEndTime(new DateTime(2012, 12, 14, 15, 59, 59, DateTimeKind.Utc)).ToString(FMT)); Assert.AreEqual("20121214-11:00:00", sched.NextEndTime(new DateTime(2012, 12, 14, 16, 00, 00, DateTimeKind.Utc)).ToString(FMT)); Assert.AreEqual("20121221-11:00:00", sched.NextEndTime(new DateTime(2012, 12, 14, 16, 00, 01, DateTimeKind.Utc)).ToString(FMT)); // ========== // Time zone during Daylight Savings settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "05:30:00"); // 09:30:00 utc settings.SetString(QuickFix.SessionSettings.END_TIME, "12:00:00"); // 16:00:00 utc settings.SetString(QuickFix.SessionSettings.TIME_ZONE, EASTERN_STANDARD_TIME_ZONE_ID); //-4 for DST settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); sched = new QuickFix.SessionSchedule(settings); // June 15 and 22 are Fridays Assert.AreEqual("20120615-12:00:00", sched.NextEndTime(new DateTime(2012, 06, 15, 15, 59, 59, DateTimeKind.Utc)).ToString(FMT)); Assert.AreEqual("20120615-12:00:00", sched.NextEndTime(new DateTime(2012, 06, 15, 16, 00, 00, DateTimeKind.Utc)).ToString(FMT)); Assert.AreEqual("20120622-12:00:00", sched.NextEndTime(new DateTime(2012, 06, 15, 16, 00, 01, DateTimeKind.Utc)).ToString(FMT)); }
public void testOptArgs() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "00:00:00"); settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Thursday); Assert.Throws(typeof(QuickFix.ConfigError), delegate { new QuickFix.SessionSchedule(settings); }); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); Assert.DoesNotThrow(delegate { new QuickFix.SessionSchedule(settings); }); }
public void testLastEndTime_WeeklySessions() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "09:30:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "16:00:00"); settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); DateTime thisWeekEnd = new DateTime(2013, 02, 08, 16, 00, 00, DateTimeKind.Utc); DateTime prevWeekEnd = new DateTime(2013, 02, 01, 16, 00, 00, DateTimeKind.Utc); // before starttime Assert.AreEqual(prevWeekEnd, sched.LastEndTime(new DateTime(2013, 02, 04, 08, 00, 00, DateTimeKind.Utc))); // during session Assert.AreEqual(prevWeekEnd, sched.LastEndTime(new DateTime(2013, 02, 05, 08, 00, 00, DateTimeKind.Utc))); // equals endtime Assert.AreEqual(prevWeekEnd, sched.LastEndTime(thisWeekEnd)); // after endtime Assert.AreEqual(thisWeekEnd, sched.LastEndTime(new DateTime(2013, 02, 08, 17, 00, 00, DateTimeKind.Utc))); // ========== // Settings file is specified in a zone (est, -5) settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "04:30:00"); // 09:30:00 utc settings.SetString(QuickFix.SessionSettings.END_TIME, "11:00:00"); // 16:00:00 utc settings.SetString(QuickFix.SessionSettings.TIME_ZONE, EASTERN_STANDARD_TIME_ZONE_ID); //-5 settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); sched = new QuickFix.SessionSchedule(settings); // before starttime Assert.AreEqual(prevWeekEnd, sched.LastEndTime(new DateTime(2013, 02, 04, 08, 00, 00, DateTimeKind.Utc))); // during session Assert.AreEqual(prevWeekEnd, sched.LastEndTime(new DateTime(2013, 02, 05, 08, 00, 00, DateTimeKind.Utc))); // equals endtime Assert.AreEqual(prevWeekEnd, sched.LastEndTime(thisWeekEnd)); // after endtime Assert.AreEqual(thisWeekEnd, sched.LastEndTime(new DateTime(2013, 02, 08, 17, 00, 00, DateTimeKind.Utc))); }
public void testWeeklySessionMultiDayHoursOverlap() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "15:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "07:00:00"); //only on monday-fri settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //weekdays Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 15, 30, 0, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 17, 6, 30, 0, DateTimeKind.Utc)), "foo"); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 21, 5, 30, 59, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 21, 15, 30, 59, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 6, 59, 59, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 7, 00, 1, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 15, 30, 0, DateTimeKind.Utc))); }
public void testWeeklySessionSameDayOneDay() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "05:00:00"); settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Monday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //a sunday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 16, 23, 59, 59, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 16, 0, 0, 0, DateTimeKind.Utc))); //a monday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 0, 0, 1, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 4, 0, 1, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 17, 6, 59, 59, DateTimeKind.Utc))); //a tuesday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 18, 9, 43, 0, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 18, 0, 0, 0, DateTimeKind.Utc))); }
public void testWeeklySessionMultiDay() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "00:00:00"); //only on monday-thur (note end time) settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //a monday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 0, 0, 0, DateTimeKind.Utc))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 9, 43, 0, DateTimeKind.Utc))); // a thursday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 20, 23, 59, 59, DateTimeKind.Utc))); //a fri, sat, sun Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 21, 23, 59, 59, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 0, 0, 0, DateTimeKind.Utc))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 16, 9, 43, 0, DateTimeKind.Utc))); }
public void testWeeklySessionSameDayOneDay() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "05:00:00"); settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Monday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //a sunday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 16, 23, 59, 59))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 16, 0, 0, 0))); //a monday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 0, 0, 1))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 4, 0, 1))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 17, 6, 59, 59))); //a tuesday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 18, 9, 43, 0))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 18, 0, 0, 0))); }
public void testWeeklySessionMultiDayOverlap() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "00:00:00"); //only on wed-sunday night settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Wednesday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Monday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //wed-monday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 19, 9, 43, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 20, 9, 43, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 21, 9, 43, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 22, 9, 43, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 16, 9, 43, 0))); //monday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 17, 9, 43, 0))); //tuesday Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 18, 9, 43, 0))); }
public void testWeeklySessionMultiDayHoursOverlap() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "15:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "07:00:00"); //only on monday-fri settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //weekdays Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 15, 30, 0))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 17, 6, 30, 0)),"foo"); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 21, 5, 30, 59))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 21, 15, 30, 59))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 6, 59, 59))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 7, 00, 1))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 15, 30, 0))); }
public void testWeeklySessionMultiDayHours() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "07:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "15:00:00"); //only on monday-fri settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //Monday Scenarios Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 17, 6, 59, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 7, 30, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 15, 30, 0))); //Midweek Scenarios Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 19, 6, 59, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 19, 7, 30, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 19, 15, 30, 0))); //Friday Scenarios Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 21, 6, 59, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 21, 7, 30, 0))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 21, 15, 30, 0))); //Weekend Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 6, 59, 0))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 7, 30, 0))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 15, 30, 0))); }
public void testWeeklySessionMultiDay() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "00:00:00"); //only on monday-thur (note end time) settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); //a monday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 0, 0, 0))); Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 17, 9, 43, 0))); // a thursday Assert.IsTrue(sched.IsSessionTime(new DateTime(2011, 10, 20, 23, 59, 59))); //a fri, sat, sun Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 21, 23, 59, 59))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 22, 0, 0, 0))); Assert.IsFalse(sched.IsSessionTime(new DateTime(2011, 10, 16, 9, 43, 0))); }
public void testLastEndTime_WeeklySessions() { QuickFix.Dictionary settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "09:30:00"); settings.SetString(QuickFix.SessionSettings.END_TIME, "16:00:00"); settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); QuickFix.SessionSchedule sched = new QuickFix.SessionSchedule(settings); DateTime thisWeekEnd = new DateTime(2012, 10, 19, 16, 00, 00, DateTimeKind.Utc); DateTime prevWeekEnd = new DateTime(2012, 10, 12, 16, 00, 00, DateTimeKind.Utc); // before starttime Assert.AreEqual(prevWeekEnd, sched.LastEndTime(new DateTime(2012, 10, 15, 08, 00, 00, DateTimeKind.Utc))); // during session Assert.AreEqual(prevWeekEnd, sched.LastEndTime(new DateTime(2012, 10, 17, 08, 00, 00, DateTimeKind.Utc))); // equals endtime Assert.AreEqual(thisWeekEnd, sched.LastEndTime(thisWeekEnd)); // after endtime Assert.AreEqual(thisWeekEnd, sched.LastEndTime(new DateTime(2012, 10, 19, 17, 00, 00, DateTimeKind.Utc))); // ========== // Settings file is specified in a zone (est, -5) settings = new QuickFix.Dictionary(); settings.SetString(QuickFix.SessionSettings.START_TIME, "04:30:00"); // 09:30:00 utc settings.SetString(QuickFix.SessionSettings.END_TIME, "11:00:00"); // 16:00:00 utc settings.SetString(QuickFix.SessionSettings.TIME_ZONE, "Eastern Standard Time"); //-5 settings.SetDay(QuickFix.SessionSettings.START_DAY, System.DayOfWeek.Monday); settings.SetDay(QuickFix.SessionSettings.END_DAY, System.DayOfWeek.Friday); sched = new QuickFix.SessionSchedule(settings); // before starttime Assert.AreEqual(prevWeekEnd, sched.LastEndTime(new DateTime(2012, 10, 15, 08, 00, 00, DateTimeKind.Utc))); // during session Assert.AreEqual(prevWeekEnd, sched.LastEndTime(new DateTime(2012, 10, 17, 08, 00, 00, DateTimeKind.Utc))); // equals endtime Assert.AreEqual(thisWeekEnd, sched.LastEndTime(thisWeekEnd)); // after endtime Assert.AreEqual(thisWeekEnd, sched.LastEndTime(new DateTime(2012, 10, 19, 17, 00, 00, DateTimeKind.Utc))); }