public InjectableMockClient(string host,
                             string eventHubName,
                             EventHubTokenCredential credential,
                             EventHubConnectionOptions clientOptions,
                             AmqpConnectionScope connectionScope,
                             AmqpMessageConverter messageConverter) : base(host, eventHubName, credential, clientOptions, connectionScope, messageConverter)
 {
 }
Example #2
0
 public InjectableMockClient(string host,
                             string eventHubName,
                             TokenCredential credential,
                             EventHubClientOptions clientOptions,
                             EventHubRetryPolicy defaultRetryPolicy,
                             AmqpConnectionScope connectionScope,
                             AmqpMessageConverter messageConverter) : base(host, eventHubName, credential, clientOptions, defaultRetryPolicy, connectionScope, messageConverter)
 {
 }
Example #3
0
        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>());
        }
Example #7
0
        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);