public void Should_work_with_suspended_state()
        {
            var state = ClientHolderState.CreateSuspended(TimeBudget.StartNew(9.Seconds()));

            state.ConnectionState.Should().Be(ConnectionState.Disconnected);
            state.ConnectionWatcher.Should().BeNull();
            state.TimeBeforeReset.Total.Should().Be(9.Seconds());
            state.IsSuspended.Should().BeTrue();
            state.IsConnected.Should().BeFalse();
            state.ConnectionString.Should().BeNull();

            state.Dispose();
        }
Esempio n. 2
0
        public static ClientHolderState CreateActiveClientHolderState(ZooKeeperClientSettings settings)
        {
            var connectionString  = settings.ConnectionStringProvider();
            var connectionWatcher = new ConnectionWatcher(_ => {});

            var client = new Lazy <ZooKeeperNetExClient>(
                () =>
            {
                using (ExecutionContext.SuppressFlow())
                {
                    return(new ZooKeeperNetExClient(
                               connectionString,
                               settings.ToInnerConnectionTimeout(),
                               connectionWatcher,
                               settings.CanBeReadOnly));
                }
            },
                LazyThreadSafetyMode.ExecutionAndPublication);

            return(ClientHolderState.CreateActive(client, connectionWatcher, ConnectionState.Connected, connectionString, settings));
        }