public void ImplicitOperator_Test()
        {
            //Arrange
            var       maxRenew        = TimeSpan.FromMinutes(10);
            const int concurrentCalls = 10;

            var exceptionReceivedHandler = Substitute.For <Func <ExceptionReceivedEventArgs, Task> >();
            var shouldCompleteOn         = Substitute.For <Func <Exception, bool> >();
            var sut = new MessagePumpBuilderOptions(exceptionReceivedHandler)
            {
                MaxAutoRenewDuration      = maxRenew,
                MaxConcurrentCalls        = concurrentCalls,
                ShouldCompleteOnException = shouldCompleteOn
            };

            //Act
            MessageHandlerOptions result = sut;

            //Assert
            sut.ShouldCompleteOnException.Should().Be(shouldCompleteOn);

            result.Should().NotBeNull();
            result.AutoComplete.Should().BeFalse();
            result.MaxAutoRenewDuration.Should().Be(maxRenew);
            result.MaxConcurrentCalls.Should().Be(concurrentCalls);
        }
        public void ImplicitOperator_Null_Test()
        {
            //Arrange
            var       maxRenew        = TimeSpan.FromMinutes(5);
            const int concurrentCalls = 1;

            MessagePumpBuilderOptions sut = null;

            //Act
            // ReSharper disable once ExpressionIsAlwaysNull
            MessageHandlerOptions result = sut;

            //Assert
            result.Should().NotBeNull();
            result.ExceptionReceivedHandler.Should().NotBeNull();
            result.AutoComplete.Should().BeFalse();
            result.MaxAutoRenewDuration.Should().Be(maxRenew);
            result.MaxConcurrentCalls.Should().Be(concurrentCalls);
        }
コード例 #3
0
        static void Main()
        {
            //Replace connection string with a valid one
            var connection = new ServiceBusConnection("Endpoint=sb://somesbns.servicebus.windows.net/;SharedAccessKeyName=some-key;SharedAccessKey=fjsdjfkjsdakfjaskfjdskljfkdlsaf=");
            //Replace entity path with path to real entity on your ServiceBus namespace
            var receiver = new MessageReceiver(connection, "test");

            //Create message pump options
            var options = new MessagePumpBuilderOptions(ExceptionReceivedHandler)
            {
                MaxConcurrentCalls        = 10,
                ShouldCompleteOnException = ex => ex is ArgumentOutOfRangeException
            };

            //Setup message pump with failure policy and back off delay strategy.
            receiver.ConfigureMessagePump()
            .WithMessageProcessor <SampleMessageProcessor>()
            .WithCloneMessageFailurePolicy(e => e is InvalidOperationException)
            .WithExponentialBackOffDelayStrategy()
            .Build(options);

            Console.WriteLine("Press any key to terminate!");
            Console.Read();
        }