public void Contains_returns_false_for_expired_entry() { var set = new ConcurrentExpiringSet <string>(); set.AddOrUpdate("testKey", DateTime.UtcNow - TimeSpan.FromSeconds(5)); Assert.False(set.Contains("testKey"), "The set should return false for an expired entry."); }
public void Contains_returns_true_for_valid_entry() { var set = new ConcurrentExpiringSet <string>(); set.AddOrUpdate("testKey", DateTime.UtcNow + TimeSpan.FromSeconds(5)); Assert.True(set.Contains("testKey"), "The set should return true for a valid entry."); }
internal MessageReceiver( string entityPath, MessagingEntityType?entityType, ReceiveMode receiveMode, ServiceBusConnection serviceBusConnection, ICbsTokenProvider cbsTokenProvider, RetryPolicy retryPolicy, int prefetchCount = DefaultPrefetchCount, string sessionId = null, bool isSessionReceiver = false) : base(nameof(MessageReceiver) + StringUtility.GetRandomString(), retryPolicy ?? RetryPolicy.Default) { this.ReceiveMode = receiveMode; this.OperationTimeout = serviceBusConnection.OperationTimeout; this.Path = entityPath; this.EntityType = entityType; this.ServiceBusConnection = serviceBusConnection; this.CbsTokenProvider = cbsTokenProvider; this.SessionId = sessionId; this.isSessionReceiver = isSessionReceiver; this.ReceiveLinkManager = new FaultTolerantAmqpObject <ReceivingAmqpLink>(this.CreateLinkAsync, this.CloseSession); this.RequestResponseLinkManager = new FaultTolerantAmqpObject <RequestResponseAmqpLink>(this.CreateRequestResponseLinkAsync, this.CloseRequestResponseSession); this.requestResponseLockedMessages = new ConcurrentExpiringSet <Guid>(); this.PrefetchCount = prefetchCount; this.messageReceivePumpSyncLock = new object(); }
public void AddOrUpdate_throws_after_close() { var set = new ConcurrentExpiringSet <string>(); set.AddOrUpdate("testKey1", DateTime.UtcNow + TimeSpan.FromSeconds(5)); set.Close(); Assert.Throws <ObjectDisposedException>(() => set.AddOrUpdate("testKey2", DateTime.UtcNow - TimeSpan.FromSeconds(5))); }
public void Close_is_idempotent_and_thread_safe() { var set = new ConcurrentExpiringSet <string>(); var ex = Record.Exception(() => { set.Close(); set.Close(); Parallel.Invoke(() => set.Close(), () => set.Close()); }); Assert.Null(ex); }
public AmqpMessageReceiver(string entityName, MessagingEntityType entityType, ReceiveMode mode, int prefetchCount, ServiceBusConnection serviceBusConnection, ICbsTokenProvider cbsTokenProvider, string sessionId, bool isSessionReceiver = false) : base(mode, serviceBusConnection.OperationTimeout) { this.entityName = entityName; this.EntityType = entityType; this.ServiceBusConnection = serviceBusConnection; this.CbsTokenProvider = cbsTokenProvider; this.sessionId = sessionId; this.isSessionReceiver = isSessionReceiver; this.ReceiveLinkManager = new FaultTolerantAmqpObject <ReceivingAmqpLink>(this.CreateLinkAsync, this.CloseSession); this.RequestResponseLinkManager = new FaultTolerantAmqpObject <RequestResponseAmqpLink>(this.CreateRequestResponseLinkAsync, this.CloseRequestResponseSession); this.requestResponseLockedMessages = new ConcurrentExpiringSet <Guid>(); this.PrefetchCount = prefetchCount; }