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(); }
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."); }
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."); }