public ConnectionStringBuilderTests(ITestOutputHelper output)
 {
     this.endpoint    = new Uri("sb://contoso.servicebus.windows.net/");
     this.sasKeyName  = "RootManageSharedAccessKey";
     this.entityPath  = "hc1";
     this.sasKeyValue = TestUtility.GenerateRandomSasKey();
 }
        public async Task TokenProviderValidation()
        {
            var keyValue = TestUtility.GenerateRandomSasKey();

            Assert.Throws <ArgumentNullException>(() => TokenProvider.CreateSharedAccessSignatureTokenProvider(null));
            Assert.Throws <ArgumentNullException>(() => TokenProvider.CreateSharedAccessSignatureTokenProvider(string.Empty));
            Assert.Throws <ArgumentNullException>(() => TokenProvider.CreateSharedAccessSignatureTokenProvider(null, keyValue));
            Assert.Throws <ArgumentNullException>(() => TokenProvider.CreateSharedAccessSignatureTokenProvider(string.Empty, keyValue));
            Assert.Throws <ArgumentOutOfRangeException>(() => TokenProvider.CreateSharedAccessSignatureTokenProvider(new string('n', 257), keyValue));
            Assert.Throws <ArgumentNullException>(() => TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", null));
            Assert.Throws <ArgumentNullException>(() => TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", string.Empty));
            Assert.Throws <ArgumentOutOfRangeException>(() => TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", new string('v', 257)));

            var tokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", keyValue);

            await Assert.ThrowsAsync <ArgumentNullException>(() => tokenProvider.GetTokenAsync(null, TimeSpan.FromSeconds(1)));

            await Assert.ThrowsAsync <ArgumentNullException>(() => tokenProvider.GetTokenAsync(string.Empty, TimeSpan.FromSeconds(1)));

            await Assert.ThrowsAsync <ArgumentOutOfRangeException>(() => tokenProvider.GetTokenAsync("http://contoso.servicebus.windows.net/BadTimeout", TimeSpan.FromSeconds(-1)));
        }
        public void ListenerValidation()
        {
            var entityPath       = "myentity";
            var connectionString = "Endpoint=sb://whatever.servicebus.windows.net/";
            var connectionStringWithEntityPath      = $"Endpoint=sb://whatever.servicebus.windows.net/;EntityPath={entityPath}";
            var connectionStringWithSASKeyValueOnly = $"Endpoint=sb://whatever.servicebus.windows.net/;SharedAccessKey={TestUtility.GenerateRandomSasKey()}";

            Assert.Throws <ArgumentNullException>(() => new HybridConnectionListener((string)null));
            Assert.Throws <ArgumentNullException>(() => new HybridConnectionListener(string.Empty));
            Assert.Throws <ArgumentException>(() => new HybridConnectionListener(connectionString));
            Assert.Throws <ArgumentNullException>(() => new HybridConnectionListener(connectionString, null));
            Assert.Throws <ArgumentNullException>(() => new HybridConnectionListener(connectionString, string.Empty));
            Assert.Throws <ArgumentException>(() => new HybridConnectionListener(connectionString, entityPath));
            Assert.Throws <ArgumentException>(() => new HybridConnectionListener(connectionStringWithEntityPath, entityPath));
            Assert.Throws <ArgumentException>(() => new HybridConnectionListener(connectionStringWithSASKeyValueOnly, entityPath));
        }