public InjectableMockClient(string host, string eventHubName, EventHubTokenCredential credential, EventHubConnectionOptions clientOptions, AmqpConnectionScope connectionScope, AmqpMessageConverter messageConverter) : base(host, eventHubName, credential, clientOptions, connectionScope, messageConverter) { }
public InjectableMockClient(string host, string eventHubName, TokenCredential credential, EventHubClientOptions clientOptions, EventHubRetryPolicy defaultRetryPolicy, AmqpConnectionScope connectionScope, AmqpMessageConverter messageConverter) : base(host, eventHubName, credential, clientOptions, defaultRetryPolicy, connectionScope, messageConverter) { }
protected static void SimulateNetworkFailure(ServiceBusClient client) { var amqpClient = client.Connection.InnerClient; AmqpConnectionScope scope = (AmqpConnectionScope)typeof(AmqpClient).GetProperty( "ConnectionScope", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(amqpClient); ((FaultTolerantAmqpObject <AmqpConnection>) typeof(AmqpConnectionScope).GetProperty( "ActiveConnection", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(scope)).TryGetOpenedObject(out AmqpConnection activeConnection); activeConnection.Abort(); }
public void OpenManagementLinkAsyncRespectsDisposal() { var endpoint = new Uri("amqp://test.service.gov"); var eventHub = "myHub"; var credential = Mock.Of <TokenCredential>(); var transport = TransportType.AmqpTcp; var identifier = "customIdentIFIER"; var scope = new AmqpConnectionScope(endpoint, eventHub, credential, transport, null, identifier); scope.Dispose(); Assert.That(() => scope.OpenManagementLinkAsync(TimeSpan.FromDays(1), CancellationToken.None), Throws.InstanceOf <ObjectDisposedException>()); }
public RetriableContext( AmqpConnectionScope scope, Stopwatch stopwatch, ServiceBusRetryPolicy retryPolicy, string entityName, CancellationToken cancellationToken) { Scope = scope; Stopwatch = stopwatch; RetryPolicy = retryPolicy; TimeSpan = retryPolicy.CalculateTryTimeout(0); CancellationToken = cancellationToken; EntityName = entityName; }
public void OpenManagementLinkAsyncRespectsTokenCancellation() { var endpoint = new Uri("amqp://test.service.gov"); var eventHub = "myHub"; TokenCredential credential = Mock.Of <TokenCredential>(); TransportType transport = TransportType.AmqpTcp; var identifier = "customIdentIFIER"; using var scope = new AmqpConnectionScope(endpoint, eventHub, credential, transport, null, identifier); var cancellationSource = new CancellationTokenSource(); cancellationSource.Cancel(); Assert.That(() => scope.OpenManagementLinkAsync(TimeSpan.FromDays(1), cancellationSource.Token), Throws.InstanceOf <TaskCanceledException>()); }
private static void SimulateNetworkFailure(ServiceBusClient client) { var connection = client.Connection; AmqpClient amqpClient = (AmqpClient)typeof(ServiceBusConnection).GetField( "_innerClient", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(connection); AmqpConnectionScope scope = (AmqpConnectionScope)typeof(AmqpClient).GetProperty( "ConnectionScope", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(amqpClient); ((FaultTolerantAmqpObject <AmqpConnection>) typeof(AmqpConnectionScope).GetProperty( "ActiveConnection", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(scope)).TryGetOpenedObject(out AmqpConnection activeConnection); typeof(AmqpConnection).GetMethod("AbortInternal", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(activeConnection, null); }
public void ReceiveAsyncValidatesConnectionClosed() { var endpoint = new Uri("amqps://not.real.com"); var eventHub = "eventHubName"; var consumerGroup = "$DEFAULT"; var partition = "3"; var eventPosition = EventPosition.FromOffset(123); var options = new EventHubConsumerClientOptions(); var retryPolicy = new BasicRetryPolicy(new EventHubsRetryOptions()); var mockCredential = new EventHubTokenCredential(Mock.Of <TokenCredential>()); var scope = new AmqpConnectionScope(endpoint, endpoint, eventHub, mockCredential, EventHubsTransportType.AmqpTcp, null); var consumer = new AmqpConsumer(eventHub, consumerGroup, partition, eventPosition, true, false, null, null, null, scope, Mock.Of <AmqpMessageConverter>(), retryPolicy); scope.Dispose(); Assert.That(async() => await consumer.ReceiveAsync(100, null, CancellationToken.None), Throws.InstanceOf <EventHubsException>().And.Property(nameof(EventHubsException.Reason)).EqualTo(EventHubsException.FailureReason.ClientClosed)); }
/// <summary> /// Gets the active connection for the given scope, using the /// private property accessor. /// </summary> /// private static FaultTolerantAmqpObject <AmqpConnection> GetActiveConnection(AmqpConnectionScope target) => (FaultTolerantAmqpObject <AmqpConnection>) typeof(AmqpConnectionScope) .GetProperty("ActiveConnection", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetProperty) .GetValue(target);