public void ContainsReturnsTrue_WhenIdIsPresent() { var client = new Mock <ISubscriptionClientProxy>().Object; var idSet = new ClientTrackedMessageIdSet(); var result = idSet.ReserveMessageId("abc123"); Assert.IsTrue(result); Assert.IsTrue(idSet.Contains("abc123")); }
public void DuplicateIdIsRejected() { var client = new Mock <ISubscriptionClientProxy>().Object; var idSet = new ClientTrackedMessageIdSet(); var result = idSet.ReserveMessageId("abc123"); Assert.IsTrue(result); result = idSet.ReserveMessageId("abc123"); Assert.IsFalse(result); }
public void ReleasedIdIsAllowedToBeAdded() { var client = new Mock <ISubscriptionClientProxy>().Object; var idSet = new ClientTrackedMessageIdSet(); var result = idSet.ReserveMessageId("abc123"); Assert.IsTrue(result); idSet.ReleaseMessageId("abc123"); result = idSet.ReserveMessageId("abc123"); Assert.IsTrue(result); }
public void ClearDropsAllIds() { var client = new Mock <ISubscriptionClientProxy>().Object; var idSet = new ClientTrackedMessageIdSet(); var result = idSet.ReserveMessageId("abc123"); Assert.IsTrue(result); result = idSet.ReserveMessageId("abc1234"); Assert.IsTrue(result); idSet.Clear(); Assert.IsFalse(idSet.Contains("abc123")); Assert.IsFalse(idSet.Contains("abc1234")); }
/// <summary> /// Initializes a new instance of the <see cref="ApolloClientProxy{TSchema}" /> class. /// </summary> /// <param name="clientConnection">The underlying client connection for apollo to manage.</param> /// <param name="options">The options used to configure the registration.</param> /// <param name="messageConverter">The message converter factory that will generate /// json converters for the various <see cref="ApolloMessage" /> the proxy shuttles to the client.</param> /// <param name="logger">The logger to record client level events to, if any.</param> /// <param name="enableMetrics">if set to <c>true</c> any queries this client /// executes will have metrics attached.</param> public ApolloClientProxy( IClientConnection clientConnection, SubscriptionServerOptions <TSchema> options, ApolloMessageConverterFactory messageConverter, IGraphEventLogger logger = null, bool enableMetrics = false) { _connection = Validation.ThrowIfNullOrReturn(clientConnection, nameof(clientConnection)); _options = Validation.ThrowIfNullOrReturn(options, nameof(options)); _messageConverter = Validation.ThrowIfNullOrReturn(messageConverter, nameof(messageConverter)); _reservedMessageIds = new ClientTrackedMessageIdSet(); _subscriptions = new ApolloSubscriptionCollection <TSchema>(); _enableKeepAlive = options.KeepAliveInterval != TimeSpan.Zero; _logger = logger != null ? new ApolloClientEventLogger <TSchema>(this, logger) : null; _enableMetrics = enableMetrics; }