public void AddRedisConnectionMultiplexer_WithAzureVCAPs_AddsRedisConnectionMultiplexer() { // Arrange Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION); Environment.SetEnvironmentVariable("VCAP_SERVICES", RedisCacheTestHelpers.SingleServerVCAP_AzureBroker); var appsettings = new Dictionary <string, string>() { ["redis:client:AbortOnConnectFail"] = "false", ["redis:client:urlEncodedCredentials"] = "true" }; IServiceCollection services = new ServiceCollection(); ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); builder.AddInMemoryCollection(appsettings); var config = builder.Build(); // Act RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config); var service = services.BuildServiceProvider().GetService <IConnectionMultiplexer>(); // Assert Assert.NotNull(service); Assert.IsType <ConnectionMultiplexer>(service); Assert.Contains("cbe9d9a0-6502-438d-87ec-f26f1974e378.redis.cache.windows.net", service.Configuration); Assert.Contains(":6379", service.Configuration); Assert.Contains("password=V+4dv03jSUZkEcjGhVMR0hjEPfILCCcth1JE8vPRki4=", service.Configuration); }
public void AddRedisConnectionMultiplexer_WithSecureAzureVCAPs_AddsRedisConnectionMultiplexer() { // Arrange Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION); Environment.SetEnvironmentVariable("VCAP_SERVICES", RedisCacheTestHelpers.SingleServerVCAP_AzureBrokerSecure); var appsettings = new Dictionary <string, string>() { ["redis:client:AbortOnConnectFail"] = "false", ["redis:client:urlEncodedCredentials"] = "true" }; IServiceCollection services = new ServiceCollection(); ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); builder.AddInMemoryCollection(appsettings); var config = builder.Build(); // Act RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config); var service = services.BuildServiceProvider().GetService <IConnectionMultiplexer>(); // Assert Assert.NotNull(service); Assert.IsType <ConnectionMultiplexer>(service); Assert.Contains("9b67c347-03b8-4956-aa2a-858ac30aced5.redis.cache.windows.net", service.Configuration); Assert.Contains(":6380", service.Configuration); Assert.Contains("password=mAG0+CdozukoUTOIEAo6wTKHdMoqg4+Jfno8docw3Zg=", service.Configuration); Assert.Contains("ssl=True", service.Configuration); }
public void AddRedisConnectionMultiplexer_NoVCAPs_AddsConnectionMultiplexer() { // Arrange var appsettings = new Dictionary <string, string>() { ["redis:client:host"] = "127.0.0.1", ["redis:client:port"] = "1234", ["redis:client:password"] = "******", ["redis:client:abortOnConnectFail"] = "false", ["redis:client:connectTimeout"] = "1" }; ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddInMemoryCollection(appsettings); var config = configurationBuilder.Build(); IServiceCollection services = new ServiceCollection(); IServiceCollection services2 = new ServiceCollection(); // Act RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config); var service = services.BuildServiceProvider().GetService <IConnectionMultiplexer>(); RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services2, config, config, null); var service2 = services2.BuildServiceProvider().GetService <IConnectionMultiplexer>(); // Assert Assert.NotNull(service); Assert.IsType <ConnectionMultiplexer>(service); Assert.Contains("password=pass,word", (service as ConnectionMultiplexer).Configuration); Assert.NotNull(service2); Assert.IsType <ConnectionMultiplexer>(service2); Assert.Contains("password=pass,word", (service as ConnectionMultiplexer).Configuration); }
public void AddRedisConnectionMultiplexer_WithVCAPs_AddsRedisConnectionMultiplexer() { // Arrange Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION); Environment.SetEnvironmentVariable("VCAP_SERVICES", RedisCacheTestHelpers.SingleServerVCAP); var appsettings = new Dictionary <string, string>() { ["redis:client:AbortOnConnectFail"] = "false", ["redis:client:connectTimeout"] = "1" }; IServiceCollection services = new ServiceCollection(); ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); builder.AddInMemoryCollection(appsettings); var config = builder.Build(); // Act RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config); var service = services.BuildServiceProvider().GetService <IConnectionMultiplexer>(); // Assert Assert.NotNull(service); Assert.IsType <ConnectionMultiplexer>(service); Assert.Contains("192.168.0.103", service.Configuration); Assert.Contains(":60287", service.Configuration); Assert.Contains("password=133de7c8-9f3a-4df1-8a10-676ba7ddaa10", service.Configuration); }
public void AddRedisConnectionMultiplexer_NoVCAPs_AddsConnectionMultiplexer() { // Arrange var appsettings = @" { 'redis': { 'client': { 'host': '127.0.0.1', 'port': 1234, 'password': '******', 'abortOnConnectFail': false } } }"; var path = TestHelpers.CreateTempFile(appsettings); string directory = Path.GetDirectoryName(path); string fileName = Path.GetFileName(path); ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); configurationBuilder.SetBasePath(directory); configurationBuilder.AddJsonFile(fileName); var config = configurationBuilder.Build(); IServiceCollection services = new ServiceCollection(); // Act and Assert RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config); var service = services.BuildServiceProvider().GetService <ConnectionMultiplexer>(); Assert.NotNull(service); }
public void AddRedisConnectionMultiplexer_WithEnterpriseVCAPs_AddsRedisConnectionMultiplexer() { // Arrange Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION); Environment.SetEnvironmentVariable("VCAP_SERVICES", RedisCacheTestHelpers.SingleServerEnterpriseVCAP); var appsettings = new Dictionary <string, string>() { ["redis:client:AbortOnConnectFail"] = "false", ["redis:client:connectTimeout"] = "1" }; IServiceCollection services = new ServiceCollection(); var builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); builder.AddInMemoryCollection(appsettings); var config = builder.Build(); // Act RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config); var service = services.BuildServiceProvider().GetService <IConnectionMultiplexer>(); // Assert Assert.NotNull(service); Assert.IsType <ConnectionMultiplexer>(service); Assert.Contains("redis-1076.redis-enterprise.system.cloudyazure.io", service.Configuration); Assert.Contains(":1076", service.Configuration); Assert.Contains("password=rQrMqqg-.LJzO498EcAIfp-auu4czBiGM40wjveTdHw-EJu0", service.Configuration); }
public void AddRedisConnectionMultiplexer_ThrowsIfServiceNameNull() { IServiceCollection services = new ServiceCollection(); IConfigurationRoot config = null; string serviceName = null; var ex = Assert.Throws <ArgumentNullException>(() => RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config, serviceName)); Assert.Contains(nameof(serviceName), ex.Message); }
public void AddRedisConnectionMultiplexer_WithServiceName_NoVCAPs_ThrowsConnectorException() { // Arrange IServiceCollection services = new ServiceCollection(); IConfigurationRoot config = new ConfigurationBuilder().Build(); // Act and Assert var ex = Assert.Throws <ConnectorException>(() => RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config, "foobar")); Assert.Contains("foobar", ex.Message); }
public void AddRedisConnectionMultiplexer_AddsRedisHealthContributor() { IServiceCollection services = new ServiceCollection(); var builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); var config = builder.Build(); RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config); var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RedisHealthContributor; Assert.NotNull(healthContributor); }
public void AddRedisConnectionMultiplexer_ThrowsIfConfigurtionNull() { // Arrange IServiceCollection services = new ServiceCollection(); IConfigurationRoot config = null; // Act and Assert var ex = Assert.Throws <ArgumentNullException>(() => RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config)); Assert.Contains(nameof(config), ex.Message); var ex2 = Assert.Throws <ArgumentNullException>(() => RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config, "foobar")); Assert.Contains(nameof(config), ex2.Message); }
public void AddRedisConnectionMultiplexer_ThrowsIfServiceCollectionNull() { IServiceCollection services = null; var config = new ConfigurationBuilder().Build(); var ex = Assert.Throws <ArgumentNullException>(() => RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config)); Assert.Contains(nameof(services), ex.Message); var ex2 = Assert.Throws <ArgumentNullException>(() => RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config, "foobar")); Assert.Contains(nameof(services), ex2.Message); var ex3 = Assert.Throws <ArgumentNullException>(() => RedisCacheServiceCollectionExtensions.AddRedisConnectionMultiplexer(services, config, config, "foobar")); Assert.Contains(nameof(services), ex3.Message); }