public bool TestExclusions(DateTime dateTime, string asset) { //arrange var dateService = new Mock <IDateService>(); dateService.Setup(s => s.Now()).Returns(dateTime); var settings = new ScheduleSettings( dayOffStartDay: DayOfWeek.Friday, dayOffStartTime: new TimeSpan(21, 0, 0), dayOffEndDay: DayOfWeek.Sunday, dayOffEndTime: new TimeSpan(21, 0, 0), assetPairsWithoutDayOff: new[] { AssetWithoutDayOff, "BTCCHF" }.ToHashSet(), pendingOrdersCutOff: new TimeSpan(1, 0, 0)); var dayOffSettingsService = new Mock <IDayOffSettingsService>(); dayOffSettingsService.Setup(s => s.GetScheduleSettings()).Returns(settings); dayOffSettingsService.Setup(s => s.GetExclusions(AssetWithDayOff)) .Returns(ImmutableArray.Create( new DayOffExclusion(Guid.NewGuid(), "smth", new DateTime(2017, 6, 24, 01, 00, 00), new DateTime(2017, 6, 24, 04, 00, 00), true))); dayOffSettingsService.Setup(s => s.GetExclusions(AssetWithoutDayOff)) .Returns(ImmutableArray.Create( new DayOffExclusion(Guid.NewGuid(), "smth", new DateTime(2017, 6, 24, 03, 00, 00), new DateTime(2017, 6, 24, 04, 00, 00), false))); var dayOffService = new AssetPairDayOffService(dateService.Object, dayOffSettingsService.Object); //act return(dayOffService.ArePendingOrdersDisabled(asset)); }
public bool TestDayOff(DateTime dateTime, string asset) { //arrange var dateService = new Mock <IDateService>(); dateService.Setup(s => s.Now()).Returns(dateTime); var settings = new ScheduleSettings( dayOffStartDay: DayOfWeek.Friday, dayOffStartTime: new TimeSpan(21, 0, 0), dayOffEndDay: DayOfWeek.Sunday, dayOffEndTime: new TimeSpan(21, 0, 0), assetPairsWithoutDayOff: new[] { AssetWithoutDayOff, "BTCCHF" }.ToHashSet(), pendingOrdersCutOff: TimeSpan.Zero); var dayOffSettingsService = new Mock <IDayOffSettingsService>(); dayOffSettingsService.Setup(s => s.GetScheduleSettings()).Returns(settings); dayOffSettingsService.Setup(s => s.GetExclusions(It.IsNotNull <string>())).Returns(ImmutableArray <DayOffExclusion> .Empty); var dayOffService = new AssetPairDayOffService(dateService.Object, dayOffSettingsService.Object); //act return(dayOffService.IsDayOff(asset)); }