Пример #1
0
        public async Task OpenAmqpObjectAsyncTranslatesInvalidStateExceptions(Type exceptionType)
        {
            var observedException        = default(Exception);
            var openException            = (Exception)Activator.CreateInstance(exceptionType, "stringArg");
            var endpoint                 = new Uri("amqp://test.service.gov");
            var transport                = ServiceBusTransportType.AmqpTcp;
            var mockCredential           = new Mock <TokenCredential>();
            var mockServiceBusCredential = new Mock <ServiceBusTokenCredential>(mockCredential.Object);
            var mockScope                = new MockConnectionScope(endpoint, mockServiceBusCredential.Object, transport, null);

            mockScope.MockConnection
            .Protected()
            .Setup("OpenInternal")
            .Throws(openException)
            .Verifiable();

            try
            {
                await mockScope.InvokeOpenAmqpObjectAsync(mockScope.MockConnection.Object, TimeSpan.FromMinutes(5), CancellationToken.None);
            }
            catch (Exception ex)
            {
                observedException = ex;
            }

            Assert.That(observedException, Is.Not.Null, "An exception should have been observed.");
            Assert.That(observedException, Is.TypeOf <ServiceBusException>(), "The exception should have been translated.");
            Assert.That(((ServiceBusException)observedException).IsTransient, Is.True, "The exception should be transient.");

            mockScope.MockConnection.VerifyAll();
        }
Пример #2
0
        public void CalculateLinkAuthorizationRefreshIntervalRespectsTheMinimumDuration()
        {
            var credential        = new Mock <ServiceBusTokenCredential>(Mock.Of <TokenCredential>());
            var mockScope         = new MockConnectionScope(new Uri("sb://mine.hubs.com"), credential.Object, ServiceBusTransportType.AmqpTcp, null);
            var currentTime       = new DateTime(2015, 10, 27, 00, 00, 00);
            var minimumRefresh    = GetMinimumAuthorizationRefresh();
            var expireTime        = currentTime.Add(minimumRefresh.Subtract(TimeSpan.FromMilliseconds(500)));
            var calculatedRefresh = mockScope.InvokeCalculateLinkAuthorizationRefreshInterval(expireTime, currentTime);

            Assert.That(calculatedRefresh, Is.EqualTo(minimumRefresh), "The minimum refresh duration should have been used.");
        }
Пример #3
0
        public void CalculateLinkAuthorizationRefreshIntervalRespectsTheRefreshBuffer()
        {
            var credential        = new Mock <ServiceBusTokenCredential>(Mock.Of <TokenCredential>());
            var mockScope         = new MockConnectionScope(new Uri("sb://mine.hubs.com"), credential.Object, ServiceBusTransportType.AmqpTcp, null);
            var currentTime       = new DateTime(2015, 10, 27, 00, 00, 00);
            var expireTime        = currentTime.AddHours(1);
            var buffer            = GetAuthorizationRefreshBuffer();
            var calculatedRefresh = mockScope.InvokeCalculateLinkAuthorizationRefreshInterval(expireTime, currentTime);
            var calculatedExpire  = currentTime.Add(calculatedRefresh);

            Assert.That(calculatedExpire, Is.LessThan(expireTime), "The refresh should be account for the buffer and be earlier than expiration.");
            Assert.That(calculatedExpire, Is.EqualTo(expireTime.Subtract(buffer)).Within(TimeSpan.FromSeconds(2)), "The authorization buffer should have been used for buffering.");
        }
        public void CalculateLinkAuthorizationRefreshIntervalRespectsTheMaximumDuration()
        {
            var credential        = new Mock <ServiceBusTokenCredential>(Mock.Of <TokenCredential>());
            var mockScope         = new MockConnectionScope(new Uri("sb://mine.hubs.com"), credential.Object, ServiceBusTransportType.AmqpTcp, null);
            var currentTime       = new DateTime(2015, 10, 27, 00, 00, 00);
            var refreshBuffer     = GetAuthorizationRefreshBuffer();
            var jitterBuffer      = TimeSpan.FromSeconds(GetAuthorizationBaseJitterSeconds()).Add(TimeSpan.FromSeconds(5));
            var maximumRefresh    = GetMaximumAuthorizationRefresh();
            var expireTime        = currentTime.Add(maximumRefresh.Add(refreshBuffer).Add(TimeSpan.FromMilliseconds(500)));
            var calculatedRefresh = mockScope.InvokeCalculateLinkAuthorizationRefreshInterval(expireTime, currentTime);

            Assert.That(calculatedRefresh, Is.LessThanOrEqualTo(maximumRefresh), "The maximum refresh duration should not be exceeded.");
            Assert.That(calculatedRefresh, Is.EqualTo(maximumRefresh).Within(jitterBuffer), "The maximum refresh duration should have been used.");
        }