private IAssetPairDayOffService ArrangeDayOffService(DateTime dateTime, IEnumerable <CompiledScheduleSettingsContract> withDayOffSchedules) { var dateService = new Mock <IDateService>(); dateService.Setup(s => s.Now()).Returns(dateTime); var assetPairsCacheMock = new Mock <IAssetPairsCache>(); assetPairsCacheMock.Setup(s => s.GetAllIds()) .Returns(new[] { AssetWithDayOff, AssetWithoutDayOff }.ToImmutableHashSet()); var scheduleSettingsApiMock = new Mock <IScheduleSettingsApi>(); scheduleSettingsApiMock.Setup(s => s.StateList(It.IsAny <string[]>())) .ReturnsAsync(new List <CompiledScheduleContract> { new CompiledScheduleContract { AssetPairId = AssetWithDayOff, ScheduleSettings = withDayOffSchedules.ToList() }, new CompiledScheduleContract { AssetPairId = AssetWithoutDayOff, ScheduleSettings = new List <CompiledScheduleSettingsContract>() } }); var scheduleSettingsCacheService = new ScheduleSettingsCacheService( Mock.Of <ICqrsSender>(), scheduleSettingsApiMock.Object, assetPairsCacheMock.Object, dateService.Object, new EmptyLog(), new OvernightMarginSettings()); scheduleSettingsCacheService.UpdateSettingsAsync().GetAwaiter().GetResult(); return(new AssetPairDayOffService(dateService.Object, scheduleSettingsCacheService)); }
private IAssetPairDayOffService ArrangeDayOffService(DateTime dateTime, IEnumerable <ScheduleSettingsContract> withDayOffSchedules) { var dateService = new Mock <IDateService>(); dateService.Setup(s => s.Now()).Returns(dateTime); var assetPairsCacheMock = new Mock <IAssetPairsCache>(); assetPairsCacheMock.Setup(s => s.GetAllIds()) .Returns(new[] { AssetWithDayOff, AssetWithoutDayOff }.ToImmutableHashSet()); var assetPair1Mock = new Mock <IAssetPair>(); assetPair1Mock.Setup(p => p.Id).Returns(AssetWithDayOff); assetPair1Mock.Setup(p => p.MarketId).Returns(AssetWithDayOffMarket); assetPairsCacheMock.Setup(s => s.GetAssetPairByIdOrDefault(AssetWithDayOff)).Returns(assetPair1Mock.Object); var assetPair2Mock = new Mock <IAssetPair>(); assetPair2Mock.Setup(p => p.Id).Returns(AssetWithoutDayOff); assetPair2Mock.Setup(p => p.MarketId).Returns(AssetWithoutDayOffMarket); assetPairsCacheMock.Setup(s => s.GetAssetPairByIdOrDefault(AssetWithoutDayOff)).Returns(assetPair2Mock.Object); var assetPair3Mock = new Mock <IAssetPair>(); assetPair3Mock.Setup(p => p.Id).Returns(AssetWithoutSchedule); assetPair3Mock.Setup(p => p.MarketId).Returns(AssetWithoutScheduleMarket); assetPairsCacheMock.Setup(s => s.GetAssetPairByIdOrDefault(AssetWithoutSchedule)).Returns(assetPair3Mock.Object); var assetPair4Mock = new Mock <IAssetPair>(); assetPair4Mock.Setup(p => p.Id).Returns(AssetWithTradingDisabled); assetPair4Mock.Setup(p => p.MarketId).Returns(AssetWithoutDayOff); assetPair4Mock.Setup(p => p.IsTradingDisabled).Returns(true); assetPairsCacheMock.Setup(s => s.GetAssetPairByIdOrDefault(AssetWithTradingDisabled)).Returns(assetPair4Mock.Object); var scheduleSettingsApiMock = new Mock <IScheduleSettingsApi>(); scheduleSettingsApiMock.Setup(s => s.List(It.IsAny <string>())) .ReturnsAsync(withDayOffSchedules.Concat(new[] { AlwaysOnMarketSchedule }).ToList()); scheduleSettingsApiMock.Setup(s => s.StateList(It.IsAny <string[]>())) .ReturnsAsync(new List <CompiledScheduleContract>()); var scheduleSettingsCacheService = new ScheduleSettingsCacheService( Mock.Of <ICqrsSender>(), scheduleSettingsApiMock.Object, assetPairsCacheMock.Object, dateService.Object, new EmptyLog(), new OvernightMarginSettings()); scheduleSettingsCacheService.UpdateAllSettingsAsync().GetAwaiter().GetResult(); return(new AssetPairDayOffService(scheduleSettingsCacheService)); }