public void ConfigureServiceEndpoint_WithConnectionString() { var connectionStrings = FakeEndpointUtils.GetFakeConnectionString(2); var names = new string[] { "First", "Second" }; var configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); foreach (var(name, connStr) in names.Zip(connectionStrings)) { configuration[$"{Constants.Keys.AzureSignalREndpointsKey}:{name}"] = connStr; } var connectionString = FakeEndpointUtils.GetFakeConnectionString(1).Single(); configuration[Constants.Keys.ConnectionStringDefaultKey] = connectionString; var optionsSetup = new ServiceManagerOptionsSetup(configuration); var options = new ServiceManagerOptions(); optionsSetup.Configure(options); var actualEndpoints = options.ServiceEndpoints; foreach (var(name, connStr) in names.Zip(connectionStrings)) { Assert.Contains(new ServiceEndpoint(name, connStr), actualEndpoints); } Assert.Equal(connectionString, options.ConnectionString); }
internal void GenerateClientAccessTokenTest() { var endpoint = "https://abc"; var accessKey = "nOu3jXsHnsO5urMumc87M9skQbUWuQ+PE5IvSUEic8w="; var testConnectionString = $"Endpoint={endpoint};AccessKey={accessKey};Version=1.0;"; var userId = "UserA"; var hubName = "signalrbench"; var expectedAudience = $"{endpoint}/client/?hub={hubName.ToLower()}"; var lifeTime = TimeSpan.FromSeconds(99); var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, userId), new Claim("type1", "val1") }; var serviceManagerOptions = new ServiceManagerOptions { ConnectionString = testConnectionString, ServiceTransportType = ServiceTransportType.Transient }; var serviceManager = new ServiceManager(serviceManagerOptions); var tokenString = serviceManager.GenerateClientAccessToken(hubName, claims, lifeTime); var token = JwtTokenHelper.JwtHandler.ReadJwtToken(tokenString); var customClaims = new Claim[] { new Claim("type1", "val1") }; string expectedToken = JwtTokenHelper.GenerateExpectedAccessToken(token, expectedAudience, accessKey, customClaims); Assert.Equal(expectedToken, tokenString); }
private static IServiceManager GenerateServiceManager(string connectionString, ServiceTransportType serviceTransportType = ServiceTransportType.Transient) { var serviceManagerOptions = new ServiceManagerOptions { ConnectionString = connectionString, ServiceTransportType = serviceTransportType }; return(new ServiceManager(serviceManagerOptions)); }
private static IServiceManager GenerateServiceManager(string connectionString, ServiceTransportType serviceTransportType = ServiceTransportType.Transient, string appName = null) { var serviceManagerOptions = new ServiceManagerOptions { ConnectionString = connectionString, ServiceTransportType = serviceTransportType, ApplicationName = appName }; return(new ServiceManager(serviceManagerOptions)); }
public void TestHubProtocolConfiguration(string configKey, string configValue, Type objectSerializerType) { var configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); configuration[configKey] = configValue; var options = new ServiceManagerOptions(); var setup = new OptionsSetup(configuration, NullLoggerFactory.Instance, SingletonAzureComponentFactory.Instance, "key"); setup.Configure(options); Assert.Equal(objectSerializerType, options.ObjectSerializer?.GetType()); }
internal void GenerateClientEndpointTestWithClientEndpoint() { var options = new ServiceManagerOptions { ConnectionString = $"Endpoint=http://localhost;AccessKey=ABC;Version=1.0;ClientEndpoint=https://remote" }; var context = new ServiceManagerContext(); context.SetValueFromOptions(options); var manager = new ServiceManager(context, new RestClientFactory(UserAgent)); var clientEndpoint = manager.GetClientEndpoint(HubName); Assert.Equal("https://remote/client/?hub=signalrbench", clientEndpoint); }
public void TestIdentityBasedMultiEndpointConfiguration() { var serviceUris = new string[] { "http://localhost.signalr.com", "http://localhost2.signalr.com" }; var endpointNames = new string[] { "eastus", "westus" }; var configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); configuration[$"Azure:SignalR:Endpoints:{endpointNames[0]}:serviceUri"] = serviceUris[0]; configuration[$"Azure:SignalR:Endpoints:{endpointNames[1]}:serviceUri"] = serviceUris[1]; var optionsSetup = new OptionsSetup(configuration, NullLoggerFactory.Instance, SingletonAzureComponentFactory.Instance, "does_not_matter"); var options = new ServiceManagerOptions(); optionsSetup.Configure(options); Assert.Equal(2, options.ServiceEndpoints.Length); Assert.Contains(options.ServiceEndpoints, e => endpointNames[0] == e.Name && serviceUris[0] == e.Endpoint); Assert.Contains(options.ServiceEndpoints, e => endpointNames[1] == e.Name && serviceUris[1] == e.Endpoint); }
public void TestIdentityBasedSingleEndpointConfiguration() { var configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); var sectionKey = "connection"; var serviceUri = "http://localhost.signalr.com"; configuration[$"{sectionKey}:serviceUri"] = serviceUri; var optionsSetup = new OptionsSetup(configuration, NullLoggerFactory.Instance, SingletonAzureComponentFactory.Instance, sectionKey); var options = new ServiceManagerOptions(); optionsSetup.Configure(options); var endpoint = Assert.Single(options.ServiceEndpoints); Assert.Equal(serviceUri, endpoint.Endpoint); Assert.Equal(string.Empty, endpoint.Name); }
public void EmptyConfiguration_NotCleanOriginalValue() { const string app = "App"; var connStr = FakeEndpointUtils.GetFakeConnectionString(1).Single(); var endpoints = FakeEndpointUtils.GetFakeEndpoint(2).ToArray(); var options = new ServiceManagerOptions { ApplicationName = app, ConnectionString = connStr, ServiceEndpoints = endpoints }; var configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); var setup = new ServiceManagerOptionsSetup(configuration); setup.Configure(options); Assert.Equal(app, options.ApplicationName); Assert.Equal(connStr, options.ConnectionString); Assert.Equal(endpoints, options.ServiceEndpoints); }
public void TestIdentityBasedMixedEndpointConfiguration() { var serviceUris = new string[] { "http://localhost.signalr.com", "http://localhost2.signalr.com" }; var endpointName = "eastus"; var namelessEndpointKey = "AzureSignalRConnection"; var configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); configuration[$"Azure:SignalR:Endpoints:{endpointName}:serviceUri"] = serviceUris[0]; configuration[$"{namelessEndpointKey}:serviceUri"] = serviceUris[1]; var optionsSetup = new OptionsSetup(configuration, NullLoggerFactory.Instance, SingletonAzureComponentFactory.Instance, namelessEndpointKey); var options = new ServiceManagerOptions(); optionsSetup.Configure(options); Assert.Equal(2, options.ServiceEndpoints.Length); Assert.Contains(options.ServiceEndpoints, e => endpointName == e.Name && serviceUris[0] == e.Endpoint); Assert.Contains(options.ServiceEndpoints, e => string.Empty == e.Name && serviceUris[1] == e.Endpoint); }