Пример #1
0
        public async Task SetMarginTradingEnabled(string clientId, bool enabled)
        {
            var settings = await _clientAccountClient.GetMarginEnabledAsync(clientId);

            if (_marginSettings.IsLive)
            {
                settings.EnabledLive = enabled;
            }
            else
            {
                settings.Enabled = enabled;
            }

            await _clientAccountClient.SetMarginEnabledAsync(clientId, settings.Enabled, settings.EnabledLive,
                                                             settings.TermsOfUseAgreed);

            var marginEnabledChangedMessage = new MarginTradingEnabledChangedMessage
            {
                ClientId    = clientId,
                EnabledDemo = settings.Enabled,
                EnabledLive = settings.EnabledLive
            };

            _marginTradingSettingsCacheService.OnMarginTradingEnabledChanged(marginEnabledChangedMessage);
            await _eventsPublisher.ProduceAsync(marginEnabledChangedMessage);
        }
 public void OnMarginTradingEnabledChanged(MarginTradingEnabledChangedMessage message)
 {
     _cacheProvider.Add(GetClientTradingEnabledCacheKey(message.ClientId),
                        new EnabledMarginTradingTypes {
         Demo = message.EnabledDemo, Live = message.EnabledLive
     },
                        ClientTradingEnabledCachingParameters);
 }
        public async Task Always_ShouldCorrectlyEnableLive()
        {
            // arrange
            //_marginSettings.IsLive = true;

            //act
            await _sut.SetMarginTradingEnabled("id of client", enabled : true);

            //assert
            Mock.Get(_clientAccountsService).Verify(r => r.SetMarginEnabledAsync("id of client", false, true, false));
            var expectedMessage = new MarginTradingEnabledChangedMessage
            {
                ClientId    = "id of client",
                EnabledDemo = false,
                EnabledLive = true
            };

            _sentMessage.Should().BeEquivalentTo(expectedMessage);
            Mock.Get(_marginTradingSettingsCacheService)
            .Verify(s => s.OnMarginTradingEnabledChanged(expectedMessage.Equivalent()));
        }
        public void SetUp()
        {
            _clientAccountsService = Mock.Of <IClientAccountService>(r =>
                                                                     r.GetMarginEnabledAsync("id of client") == Task.FromResult(new MarginEnabledSettingsModel()));
            var publisher = Mock.Of <IMessageProducer <MarginTradingEnabledChangedMessage> >();

            Mock.Get(publisher)
            .Setup(s => s.ProduceAsync(It.IsNotNull <MarginTradingEnabledChangedMessage>()))
            .Returns(Task.CompletedTask).Callback <MarginTradingEnabledChangedMessage>(m => _sentMessage = m);
            var expectedRabbitMqSettings = new RabbitMqSettings
            {
                ConnectionString = "conn str",
                ExchangeName     = "exchange name"
            };
            var rabbitMqService = Mock.Of <IRabbitMqService>(s =>
                                                             s.GetProducer(expectedRabbitMqSettings.Equivalent(), true,
                                                                           s.GetJsonSerializer <MarginTradingEnabledChangedMessage>()) ==
                                                             publisher);

            _marginSettings = new MarginTradingSettings
            {
                MtRabbitMqConnString = "conn str",
                RabbitMqQueues       = new RabbitMqQueues
                {
                    MarginTradingEnabledChanged = new RabbitMqQueueInfo {
                        ExchangeName = "exchange name"
                    }
                }
            };

            _marginTradingSettingsCacheService = Mock.Of <IMarginTradingSettingsCacheService>();
            _sut = new MarginTradingEnablingService(_clientAccountsService, rabbitMqService, _marginSettings,
                                                    _marginTradingSettingsCacheService);
            _sut.Start();
        }
Пример #5
0
 public Task ProcessMarginTradingEnabledChanged(MarginTradingEnabledChangedMessage message)
 {
     _marginTradingSettingsCacheService.OnMarginTradingEnabledChanged(message);
     return(Task.CompletedTask);
 }