コード例 #1
0
        public void TradingStatus_Enabled()
        {
            var status = InstrumentTradingStatus.Enabled();

            Assert.True(status.TradingEnabled);
            Assert.That(status.Reason == InstrumentTradingDisabledReason.None);
        }
コード例 #2
0
        public InstrumentTradingStatus GetInstrumentTradingStatus(string assetPairId, TimeSpan scheduleCutOff)
        {
            var assetPair = _assetPairsCache.GetAssetPairByIdOrDefault(assetPairId);

            if (assetPair == null)
            {
                _log.WriteWarningAsync(nameof(ScheduleSettingsCacheService), nameof(GetInstrumentTradingStatus),
                                       $"AssetPair [{assetPairId}] does not exist in cache. Trading is disabled.").GetAwaiter().GetResult();
                return(InstrumentTradingStatus.Disabled(InstrumentTradingDisabledReason.InstrumentNotFound));
            }

            if (assetPair.IsTradingDisabled)
            {
                return(InstrumentTradingStatus.Disabled(InstrumentTradingDisabledReason.InstrumentTradingDisabled));
            }

            if (!_marketStates.TryGetValue(assetPair.MarketId, out var marketState))
            {
                _log.WriteWarningAsync(nameof(ScheduleSettingsCacheService), nameof(GetInstrumentTradingStatus),
                                       $"Market status of market [{assetPair.MarketId}] for asset pair [{assetPairId}] does not exist in cache. Trading is disabled.").GetAwaiter().GetResult();
                return(InstrumentTradingStatus.Disabled(InstrumentTradingDisabledReason.MarketStateNotFound));
            }

            return(marketState.IsEnabled
                ? InstrumentTradingStatus.Enabled()
                : InstrumentTradingStatus.Disabled(InstrumentTradingDisabledReason.MarketDisabled));
        }
コード例 #3
0
        public ExternalOrderbookServicesBenchmark()
        {
            var doMock = new Mock <IAssetPairDayOffService>();

            doMock.Setup(a => a.IsAssetTradingDisabled(It.IsAny <string>())).Returns(InstrumentTradingStatus.Enabled());

            _service = new ExternalOrderbookService(
                Mock.Of <IEventChannel <BestPriceChangeEventArgs> >(),
                Mock.Of <IOrderBookProviderApi>(),
                Mock.Of <IDateService>(),
                Mock.Of <IConvertService>(),
                doMock.Object,
                Mock.Of <ScheduleSettingsCacheService>(),
                Mock.Of <IAssetPairsCache>(),
                Mock.Of <ICqrsSender>(),
                Mock.Of <IIdentityGenerator>(),
                Mock.Of <ILog>(),
                new MarginTradingSettings()
            {
                DefaultExternalExchangeId = "test"
            });

            _lightweightService = new LightweightExternalOrderbookService(
                Mock.Of <IEventChannel <BestPriceChangeEventArgs> >(),
                Mock.Of <IOrderBookProviderApi>(),
                Mock.Of <IDateService>(),
                Mock.Of <IConvertService>(),
                Mock.Of <IScheduleSettingsCacheService>(),
                doMock.Object,
                Mock.Of <IAssetPairsCache>(),
                Mock.Of <ICqrsSender>(),
                Mock.Of <IIdentityGenerator>(),
                Mock.Of <ILog>(),
                new MarginTradingSettings()
            {
                DefaultExternalExchangeId = "test"
            });
        }
コード例 #4
0
        public void TradingStatus_Enabled_BackwardsCompatibility()
        {
            var status = InstrumentTradingStatus.Enabled();

            Assert.False(status);
        }