示例#1
0
        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));
        }
示例#2
0
        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));
        }