public async void StartSse() { try { var response = await _authApiClient.AuthenticateAsync(); _log.Debug($"Auth service response pushEnabled: {response.PushEnabled}."); if (response.PushEnabled.Value) { _sseHandler.Start(response.Token, response.Channels); _backOff.Reset(); ScheduleNextTokenRefresh(response.Expiration.Value); } else { StopSse(); } if (response.Retry.Value) { ScheduleNextTokenRefresh(_backOff.GetInterval()); } } catch (Exception ex) { _log.Error($"StartSse: {ex.Message}"); } }
public async Task <bool> StartSse() { try { var response = await _authApiClient.AuthenticateAsync(); _log.Debug($"Auth service response pushEnabled: {response.PushEnabled}."); if (response.PushEnabled.Value && _sseHandler.Start(response.Token, response.Channels)) { _backOff.Reset(); ScheduleNextTokenRefresh(response.Expiration.Value); _telemetryRuntimeProducer.RecordStreamingEvent(new StreamingEvent(EventTypeEnum.TokenRefresh, CalcularteNextTokenExpiration(response.Expiration.Value))); return(true); } StopSse(); if (response.Retry.Value) { ScheduleNextTokenRefresh(_backOff.GetInterval()); } else { ForceCancellationToken(); } } catch (Exception ex) { _log.Error($"StartSse: {ex.Message}"); } return(false); }
public void Start_ShouldConnect() { // Arrange. var token = "fake-test"; var channels = "channel-test"; _eventSourceClient .Setup(mock => mock.ConnectAsync(It.IsAny <string>())) .Returns(true); // Act. var result = _sseHandler.Start(token, channels); // Assert. Assert.IsTrue(result); _eventSourceClient.Verify(mock => mock.ConnectAsync(It.IsAny <string>()), Times.Once); }
public void Start_ShouldConnect() { // Arrange. var token = "fake-test"; var channels = "channel-test"; _eventSourceClient .Raise(mock => mock.ConnectedEvent += null, new FeedbackEventArgs(true)); // Act. _sseHandler.Start(token, channels); // Assert. _eventSourceClient.Verify(mock => mock.ConnectAsync(It.IsAny <string>()), Times.Once); _splitsWorker.Verify(mock => mock.Start(), Times.Once); _segmentsWorker.Verify(mock => mock.Start(), Times.Once); }