public void ShouldSuspend_WhenFirstAttemptEqualOrGreaterThanConnectionStateTtl_ShouldReturnTrue()
        {
            Func <DateTimeOffset> now = () => DateTimeOffset.UtcNow;

            // We want access to the modified closure so we can manipulate time within ConnectionAttemptsInfo
            // ReSharper disable once AccessToModifiedClosure
            DateTimeOffset NowWrapperFn() => now();

            var connection = new Connection(GetRealtime(), NowWrapperFn);
            var info       = new ConnectionAttemptsInfo(connection);

            //_info.Reset();
            info.Attempts.Add(new ConnectionAttempt(NowWrapperFn()));
            //Move now to default ConnetionStatettl - 1 second
            now = () => DateTimeOffset.UtcNow.Add(Defaults.ConnectionStateTtl);
            info.ShouldSuspend().Should().BeTrue("When time is equal");        // =
            now = () => DateTimeOffset.UtcNow.Add(Defaults.ConnectionStateTtl).AddSeconds(60);
            info.ShouldSuspend().Should().BeTrue("When time is greater than"); // >
        }
 public ConnectionAttemptsInfoSpecs(ITestOutputHelper output) : base(output)
 {
     _connection = new Connection(GetRealtime(), TestHelpers.NowFunc());
     _info       = new ConnectionAttemptsInfo(_connection);
 }
Exemple #3
0
 public RealtimeState(List <string> fallbackHosts, Func <DateTimeOffset> now = null)
 {
     Connection      = new ConnectionData(fallbackHosts);
     AttemptsInfo    = new ConnectionAttemptsInfo(now);
     PendingMessages = new List <MessageAndCallback>();
 }