diff --git a/test/Extensions/ServiceBus.Tests/EventHubConfigurationExtensions.cs b/test/Extensions/ServiceBus.Tests/EventHubConfigurationExtensions.cs index 7cfeceddcd..2c7c49ad72 100644 --- a/test/Extensions/ServiceBus.Tests/EventHubConfigurationExtensions.cs +++ b/test/Extensions/ServiceBus.Tests/EventHubConfigurationExtensions.cs @@ -1,5 +1,6 @@ using Azure.Identity; using Orleans.Configuration; +using Tester.AzureUtils; using TestExtensions; namespace ServiceBus.Tests @@ -19,5 +20,11 @@ public static EventHubOptions ConfigureTestDefaults(this EventHubOptions options return options; } + + public static AzureTableStreamCheckpointerOptions ConfigureTestDefaults(this AzureTableStreamCheckpointerOptions options) + { + options.TableServiceClient = AzureStorageOperationOptionsExtensions.GetTableServiceClient(); + return options; + } } } diff --git a/test/Extensions/ServiceBus.Tests/ServiceBus.Tests.csproj b/test/Extensions/ServiceBus.Tests/ServiceBus.Tests.csproj index 4b8edea69b..d9e11e8314 100644 --- a/test/Extensions/ServiceBus.Tests/ServiceBus.Tests.csproj +++ b/test/Extensions/ServiceBus.Tests/ServiceBus.Tests.csproj @@ -15,5 +15,6 @@ + diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHBatchedSubscriptionMultiplicityTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHBatchedSubscriptionMultiplicityTests.cs index 8e10116ce4..51cffbe254 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHBatchedSubscriptionMultiplicityTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHBatchedSubscriptionMultiplicityTests.cs @@ -38,7 +38,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(10); })); b.ConfigurePullingAgent(ob => ob.Configure(options => diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHClientStreamTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHClientStreamTests.cs index a6ca2319a7..827d4e75e0 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHClientStreamTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHClientStreamTests.cs @@ -58,7 +58,7 @@ public void Configure(ISiloBuilder hostBuilder) EventHubCheckpointerFactory.CreateFactory, ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(10); })); }) diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHImplicitSubscriptionStreamRecoveryTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHImplicitSubscriptionStreamRecoveryTests.cs index 54daf9a048..b0ec6a2e13 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHImplicitSubscriptionStreamRecoveryTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHImplicitSubscriptionStreamRecoveryTests.cs @@ -46,7 +46,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(1); })); b.UseDynamicClusterConfigDeploymentBalancer(); diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHProgrammaticSubscribeTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHProgrammaticSubscribeTests.cs index 3f361dd7ba..0f01c3d45b 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHProgrammaticSubscribeTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHProgrammaticSubscribeTests.cs @@ -34,7 +34,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(10); })); }); @@ -49,7 +49,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(10); })); }); diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamBatchingTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamBatchingTests.cs index 30ce2900a4..dc05b18cba 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamBatchingTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamBatchingTests.cs @@ -36,7 +36,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(1); })); b.UseDynamicClusterConfigDeploymentBalancer(); diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamCacheMissTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamCacheMissTests.cs index 50af9200af..226f6c59dd 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamCacheMissTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamCacheMissTests.cs @@ -46,11 +46,11 @@ public void Configure(ISiloBuilder hostBuilder) })); b.ConfigureEventHub(ob => ob.Configure(options => { - options.ConfigureEventHubConnection(TestDefaultConfiguration.EventHubConnectionString, EHPath, EHConsumerGroup); + options.ConfigureTestDefaults(EHPath, EHConsumerGroup); })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(10); })); b.UseDataAdapter((sp, n) => ActivatorUtilities.CreateInstance(sp)); @@ -68,7 +68,7 @@ public void Configure(IConfiguration configuration, IClientBuilder clientBuilder { b.ConfigureEventHub(ob => ob.Configure(options => { - options.ConfigureEventHubConnection(TestDefaultConfiguration.EventHubConnectionString, EHPath, EHConsumerGroup); + options.ConfigureTestDefaults(EHPath, EHConsumerGroup); })); b.UseDataAdapter((sp, n) => ActivatorUtilities.CreateInstance(sp)); }); diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamPerPartitionTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamPerPartitionTests.cs index fa8e8563a5..d0dcd71548 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamPerPartitionTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamPerPartitionTests.cs @@ -40,7 +40,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(1); })); b.UseDynamicClusterConfigDeploymentBalancer(); diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamProviderCheckpointTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamProviderCheckpointTests.cs index 45939e8741..d982e61b22 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamProviderCheckpointTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamProviderCheckpointTests.cs @@ -13,6 +13,7 @@ using Xunit; using Orleans.Configuration; using Tester; +using Tester.AzureUtils; namespace ServiceBus.Tests.StreamingTests { @@ -40,7 +41,7 @@ public void Configure(ISiloBuilder hostBuilder) ImplicitSubscription_RecoverableStream_CollectorGrain.StorageProviderName, (AzureBlobStorageOptions options) => { - options.BlobServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); }) .AddEventHubStreams(StreamProviderName, b=> { @@ -55,7 +56,7 @@ public void Configure(ISiloBuilder hostBuilder) b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(1); })); }); diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamingResumeTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamingResumeTests.cs index 692979e8db..85a451e399 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHStreamingResumeTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHStreamingResumeTests.cs @@ -29,11 +29,11 @@ public void Configure(ISiloBuilder hostBuilder) })); b.ConfigureEventHub(ob => ob.Configure(options => { - options.ConfigureEventHubConnection(TestDefaultConfiguration.EventHubConnectionString, EHPath, EHConsumerGroup); + options.ConfigureTestDefaults(EHPath, EHConsumerGroup); })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(10); })); b.UseDataAdapter((sp, n) => ActivatorUtilities.CreateInstance(sp)); @@ -50,7 +50,7 @@ public void Configure(IConfiguration configuration, IClientBuilder clientBuilder { b.ConfigureEventHub(ob => ob.Configure(options => { - options.ConfigureEventHubConnection(TestDefaultConfiguration.EventHubConnectionString, EHPath, EHConsumerGroup); + options.ConfigureTestDefaults(EHPath, EHConsumerGroup); })); }); } diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHSubscriptionMultiplicityTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHSubscriptionMultiplicityTests.cs index 5f8775b859..e800f1df1a 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHSubscriptionMultiplicityTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHSubscriptionMultiplicityTests.cs @@ -41,7 +41,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(1); })); b.UseDynamicClusterConfigDeploymentBalancer(); diff --git a/test/Extensions/ServiceBus.Tests/Streaming/EHSubscriptionObserverWithImplicitSubscribingTests.cs b/test/Extensions/ServiceBus.Tests/Streaming/EHSubscriptionObserverWithImplicitSubscribingTests.cs index 5680540587..01aa2b6174 100644 --- a/test/Extensions/ServiceBus.Tests/Streaming/EHSubscriptionObserverWithImplicitSubscribingTests.cs +++ b/test/Extensions/ServiceBus.Tests/Streaming/EHSubscriptionObserverWithImplicitSubscribingTests.cs @@ -37,7 +37,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(10); })); b.ConfigureStreamPubSub(StreamPubSubType.ImplicitOnly); @@ -53,7 +53,7 @@ public void Configure(ISiloBuilder hostBuilder) })); b.UseAzureTableCheckpointer(ob => ob.Configure(options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.PersistInterval = TimeSpan.FromSeconds(10); })); b.ConfigureStreamPubSub(StreamPubSubType.ImplicitOnly); diff --git a/test/Extensions/ServiceBus.Tests/TestStreamProviders/TestAzureTableStorageStreamFailureHandler.cs b/test/Extensions/ServiceBus.Tests/TestStreamProviders/TestAzureTableStorageStreamFailureHandler.cs index 3085825f6c..639f93241d 100644 --- a/test/Extensions/ServiceBus.Tests/TestStreamProviders/TestAzureTableStorageStreamFailureHandler.cs +++ b/test/Extensions/ServiceBus.Tests/TestStreamProviders/TestAzureTableStorageStreamFailureHandler.cs @@ -6,6 +6,7 @@ using Orleans.Streaming.EventHubs; using Orleans.Streams; using TestExtensions; +using Tester.AzureUtils; namespace ServiceBus.Tests.TestStreamProviders.EventHub { @@ -44,14 +45,7 @@ private static AzureTableDataManager GetDataManager() private static AzureStorageOperationOptions GetAzureStorageOperationOptions() { var options = new AzureStorageOperationOptions { TableName = TableName }; - if (TestDefaultConfiguration.UseAadAuthentication) - { - options.TableServiceClient = new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()); - } - else - { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); - } + options.TableServiceClient = AzureStorageOperationOptionsExtensions.GetTableServiceClient(); return options; } @@ -59,14 +53,7 @@ private static AzureStorageOperationOptions GetAzureStorageOperationOptions() private static Orleans.Streaming.AzureStorage.AzureStorageOperationOptions GetStreamingAzureStorageOperationOptions() { var options = new Orleans.Streaming.AzureStorage.AzureStorageOperationOptions { TableName = TableName }; - if (TestDefaultConfiguration.UseAadAuthentication) - { - options.TableServiceClient = new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()); - } - else - { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); - } + options.TableServiceClient = AzureStorageOperationOptionsExtensions.GetTableServiceClient(); return options; } diff --git a/test/Extensions/TesterAzureUtils/AzureMembershipTableTests.cs b/test/Extensions/TesterAzureUtils/AzureMembershipTableTests.cs index 00513553bc..cf13f9e962 100644 --- a/test/Extensions/TesterAzureUtils/AzureMembershipTableTests.cs +++ b/test/Extensions/TesterAzureUtils/AzureMembershipTableTests.cs @@ -48,7 +48,7 @@ protected override IGatewayListProvider CreateGatewayListProvider(ILogger logger protected override Task GetConnectionString() { TestUtils.CheckForAzureStorage(); - return Task.FromResult(TestDefaultConfiguration.DataConnectionString); + return Task.FromResult("not used"); } [SkippableFact, TestCategory("Functional")] diff --git a/test/Extensions/TesterAzureUtils/AzureRemindersTableTests.cs b/test/Extensions/TesterAzureUtils/AzureRemindersTableTests.cs index e55bdc66a5..4f6da97218 100644 --- a/test/Extensions/TesterAzureUtils/AzureRemindersTableTests.cs +++ b/test/Extensions/TesterAzureUtils/AzureRemindersTableTests.cs @@ -45,7 +45,7 @@ protected override IReminderTable CreateRemindersTable() protected override Task GetConnectionString() { TestUtils.CheckForAzureStorage(); - return Task.FromResult(TestDefaultConfiguration.DataConnectionString); + return Task.FromResult("not used"); } [SkippableFact] diff --git a/test/Extensions/TesterAzureUtils/AzureStorageOperationOptionsExtensions.cs b/test/Extensions/TesterAzureUtils/AzureStorageOperationOptionsExtensions.cs index c170a04696..914b114055 100644 --- a/test/Extensions/TesterAzureUtils/AzureStorageOperationOptionsExtensions.cs +++ b/test/Extensions/TesterAzureUtils/AzureStorageOperationOptionsExtensions.cs @@ -1,4 +1,6 @@ +using Azure.Data.Tables; using Azure.Identity; +using Microsoft.Extensions.Options; using TestExtensions; namespace Tester.AzureUtils @@ -7,56 +9,35 @@ public static class AzureStorageOperationOptionsExtensions { public static Orleans.Clustering.AzureStorage.AzureStorageOperationOptions ConfigureTestDefaults(this Orleans.Clustering.AzureStorage.AzureStorageOperationOptions options) { - if (TestDefaultConfiguration.UseAadAuthentication) - { - options.TableServiceClient = new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()); - } - else - { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); - } + options.TableServiceClient = GetTableServiceClient(); return options; } + public static TableServiceClient GetTableServiceClient() + { + return TestDefaultConfiguration.UseAadAuthentication + ? new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()) + : new(TestDefaultConfiguration.DataConnectionString); + } + public static Orleans.GrainDirectory.AzureStorage.AzureStorageOperationOptions ConfigureTestDefaults(this Orleans.GrainDirectory.AzureStorage.AzureStorageOperationOptions options) { - if (TestDefaultConfiguration.UseAadAuthentication) - { - options.TableServiceClient = new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()); - } - else - { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); - } + options.TableServiceClient = GetTableServiceClient(); return options; } public static Orleans.Persistence.AzureStorage.AzureStorageOperationOptions ConfigureTestDefaults(this Orleans.Persistence.AzureStorage.AzureStorageOperationOptions options) { - if (TestDefaultConfiguration.UseAadAuthentication) - { - options.TableServiceClient = new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()); - } - else - { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); - } + options.TableServiceClient = GetTableServiceClient(); return options; } public static Orleans.Reminders.AzureStorage.AzureStorageOperationOptions ConfigureTestDefaults(this Orleans.Reminders.AzureStorage.AzureStorageOperationOptions options) { - if (TestDefaultConfiguration.UseAadAuthentication) - { - options.TableServiceClient = new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()); - } - else - { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); - } + options.TableServiceClient = GetTableServiceClient(); return options; } diff --git a/test/Extensions/TesterAzureUtils/GrainDirectory/AzureMultipleGrainDirectoriesTests.cs b/test/Extensions/TesterAzureUtils/GrainDirectory/AzureMultipleGrainDirectoriesTests.cs index ac006515af..e1b5896d4c 100644 --- a/test/Extensions/TesterAzureUtils/GrainDirectory/AzureMultipleGrainDirectoriesTests.cs +++ b/test/Extensions/TesterAzureUtils/GrainDirectory/AzureMultipleGrainDirectoriesTests.cs @@ -1,5 +1,6 @@ using Orleans.TestingHost; using TestExtensions; +using Tester.AzureUtils; using UnitTests.Grains.Directories; namespace Tester.Directories @@ -13,7 +14,7 @@ public void Configure(ISiloBuilder siloBuilder) { siloBuilder.AddAzureTableGrainDirectory( CustomDirectoryGrain.DIRECTORY, - options => options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString)); + options => options.TableServiceClient = AzureStorageOperationOptionsExtensions.GetTableServiceClient()); } } diff --git a/test/Extensions/TesterAzureUtils/Streaming/AQClientStreamTests.cs b/test/Extensions/TesterAzureUtils/Streaming/AQClientStreamTests.cs index e2c0c71b50..dd90c1140f 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AQClientStreamTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AQClientStreamTests.cs @@ -70,13 +70,18 @@ public void Configure(ISiloBuilder hostBuilder) public override async Task DisposeAsync() { await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); var serviceId = this.HostedCluster.Client.ServiceProvider.GetRequiredService>().Value.ServiceId; await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueStreamProviderUtils.GenerateDefaultAzureQueueNames(serviceId, AQStreamProviderName), new AzureQueueOptions().ConfigureTestDefaults()); await TestAzureTableStorageStreamFailureHandler.DeleteAll(); } + catch (SkipException) + { + // Ignore + } } [SkippableFact(Skip="https://github.com/dotnet/orleans/issues/5639"), TestCategory("Functional"), TestCategory("AzureStorage"), TestCategory("Storage"), TestCategory("Streaming")] diff --git a/test/Extensions/TesterAzureUtils/Streaming/AQProgrammaticSubscribeTest.cs b/test/Extensions/TesterAzureUtils/Streaming/AQProgrammaticSubscribeTest.cs index 3ed545ae6f..902c0caec6 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AQProgrammaticSubscribeTest.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AQProgrammaticSubscribeTest.cs @@ -53,13 +53,18 @@ public override async Task DisposeAsync() await base.DisposeAsync(); // Only perform cleanup if this suite was not skipped. - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.HostedCluster.Options.ClusterId, queueCount), new AzureQueueOptions().ConfigureTestDefaults()); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames($"{this.HostedCluster.Options.ClusterId}2", queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) + { + // ignore + } } } diff --git a/test/Extensions/TesterAzureUtils/Streaming/AQStreamFilteringTests.cs b/test/Extensions/TesterAzureUtils/Streaming/AQStreamFilteringTests.cs index 786bb056ee..2e74f882f4 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AQStreamFilteringTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AQStreamFilteringTests.cs @@ -84,13 +84,18 @@ protected override void CheckPreconditionsOrThrow() public async Task DisposeAsync() { - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.ClearAllUsedAzureQueues( NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.fixture.HostedCluster.Options.ClusterId, queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) + { + // Ignore + } } } } diff --git a/test/Extensions/TesterAzureUtils/Streaming/AQStreamingTests.cs b/test/Extensions/TesterAzureUtils/Streaming/AQStreamingTests.cs index 772f5f38c2..ea69b6c6d0 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AQStreamingTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AQStreamingTests.cs @@ -76,12 +76,17 @@ public override async Task InitializeAsync() public override async Task DisposeAsync() { await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.ClearAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.HostedCluster.Options.ClusterId, queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) + { + // ignore + } } ////------------------------ One to One ----------------------// diff --git a/test/Extensions/TesterAzureUtils/Streaming/AQStreamsBatchingTests.cs b/test/Extensions/TesterAzureUtils/Streaming/AQStreamsBatchingTests.cs index 7b650bfe34..0a049876ab 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AQStreamsBatchingTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AQStreamsBatchingTests.cs @@ -68,8 +68,9 @@ public void Configure(IConfiguration configuration, IClientBuilder clientBuilder public override async Task DisposeAsync() { await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.HostedCluster.Options.ClusterId, queueCount), new AzureQueueOptions().ConfigureTestDefaults()); @@ -77,6 +78,7 @@ await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.I AzureQueueUtilities.GenerateQueueNames($"{this.HostedCluster.Options.ClusterId}2", queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) { } } } diff --git a/test/Extensions/TesterAzureUtils/Streaming/AQSubscriptionMultiplicityTests.cs b/test/Extensions/TesterAzureUtils/Streaming/AQSubscriptionMultiplicityTests.cs index a0d27a4b91..c6f31e97aa 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AQSubscriptionMultiplicityTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AQSubscriptionMultiplicityTests.cs @@ -64,13 +64,15 @@ public override async Task InitializeAsync() public override async Task DisposeAsync() { await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues( NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.HostedCluster.Options.ClusterId, queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) { } } [SkippableFact, TestCategory("Functional")] diff --git a/test/Extensions/TesterAzureUtils/Streaming/AQSubscriptionObserverWithImplicitSubscribingTests.cs b/test/Extensions/TesterAzureUtils/Streaming/AQSubscriptionObserverWithImplicitSubscribingTests.cs index d2c79b6d43..9d1ed30e6f 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AQSubscriptionObserverWithImplicitSubscribingTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AQSubscriptionObserverWithImplicitSubscribingTests.cs @@ -27,8 +27,9 @@ protected override void ConfigureTestCluster(TestClusterBuilder builder) public override async Task DisposeAsync() { await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames($"{this.HostedCluster.Options.ClusterId}{StreamProviderName}", queueCount), new AzureQueueOptions().ConfigureTestDefaults()); @@ -37,6 +38,10 @@ await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.I AzureQueueUtilities.GenerateQueueNames($"{this.HostedCluster.Options.ClusterId}{StreamProviderName2}", queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) + { + // ignore + } } } diff --git a/test/Extensions/TesterAzureUtils/Streaming/AzureQueueAdapterTests.cs b/test/Extensions/TesterAzureUtils/Streaming/AzureQueueAdapterTests.cs index 0de0dd5086..d3120dcb14 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AzureQueueAdapterTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AzureQueueAdapterTests.cs @@ -37,10 +37,12 @@ public AzureQueueAdapterTests(ITestOutputHelper output, TestEnvironmentFixture f public async Task DisposeAsync() { - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(this.loggerFactory, azureQueueNames, new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) { } } [SkippableFact, TestCategory("Functional"), TestCategory("Halo")] diff --git a/test/Extensions/TesterAzureUtils/Streaming/DelayedQueueRebalancingTests.cs b/test/Extensions/TesterAzureUtils/Streaming/DelayedQueueRebalancingTests.cs index 4a6c33911e..f0ba26bf0d 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/DelayedQueueRebalancingTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/DelayedQueueRebalancingTests.cs @@ -66,12 +66,14 @@ public void Configure(ISiloBuilder hostBuilder) public override async Task DisposeAsync() { await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.HostedCluster.Options.ClusterId, queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) { } } [SkippableFact, TestCategory("Functional")] diff --git a/test/Extensions/TesterAzureUtils/Streaming/HaloStreamSubscribeTests.cs b/test/Extensions/TesterAzureUtils/Streaming/HaloStreamSubscribeTests.cs index 3cae943225..1032beb646 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/HaloStreamSubscribeTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/HaloStreamSubscribeTests.cs @@ -68,8 +68,9 @@ public void Configure(ISiloBuilder hostBuilder) public override async Task DisposeAsync() { await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.HostedCluster.Options.ClusterId, queueCount), new AzureQueueOptions().ConfigureTestDefaults()); @@ -77,6 +78,7 @@ await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.I AzureQueueUtilities.GenerateQueueNames($"{this.HostedCluster.Options.ClusterId}2", queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) { } } } diff --git a/test/Extensions/TesterAzureUtils/Streaming/PullingAgentManagementTests.cs b/test/Extensions/TesterAzureUtils/Streaming/PullingAgentManagementTests.cs index 6b120aa485..0ddc3092b8 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/PullingAgentManagementTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/PullingAgentManagementTests.cs @@ -4,6 +4,7 @@ using Orleans.Runtime; using Orleans.TestingHost; using Tester; +using Tester.AzureUtils; using TestExtensions; using Xunit; @@ -27,7 +28,7 @@ public void Configure(ISiloBuilder hostBuilder) .AddAzureQueueStreams(StreamTestsConstants.AZURE_QUEUE_STREAM_PROVIDER_NAME, b=> b.ConfigureAzureQueue(ob => ob.Configure>((options, dep) => { - options.QueueServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.ConfigureTestDefaults(); options.QueueNames = Enumerable.Range(0, 8).Select(num => $"{dep.Value.ClusterId}-{num}").ToList(); }))); diff --git a/test/Extensions/TesterAzureUtils/Streaming/SampleAzureQueueStreamingTests.cs b/test/Extensions/TesterAzureUtils/Streaming/SampleAzureQueueStreamingTests.cs index 7bbae53b7a..0209c77ae8 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/SampleAzureQueueStreamingTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/SampleAzureQueueStreamingTests.cs @@ -40,12 +40,14 @@ public void Configure(ISiloBuilder hostBuilder) public override async Task DisposeAsync() { await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.HostedCluster.Options.ClusterId, queueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) { } } [SkippableFact, TestCategory("Functional")] diff --git a/test/Extensions/TesterAzureUtils/Streaming/StreamReliabilityTests.cs b/test/Extensions/TesterAzureUtils/Streaming/StreamReliabilityTests.cs index 602db33601..eef5033ce7 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/StreamReliabilityTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/StreamReliabilityTests.cs @@ -134,8 +134,9 @@ public override async Task DisposeAsync() #endif await base.DisposeAsync(); - if (!string.IsNullOrWhiteSpace(TestDefaultConfiguration.DataConnectionString)) + try { + TestUtils.CheckForAzureStorage(); await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.Instance, AzureQueueUtilities.GenerateQueueNames(this.HostedCluster.Options.ClusterId, QueueCount), new AzureQueueOptions().ConfigureTestDefaults()); @@ -143,6 +144,7 @@ await AzureQueueStreamProviderUtils.DeleteAllUsedAzureQueues(NullLoggerFactory.I AzureQueueUtilities.GenerateQueueNames($"{this.HostedCluster.Options.ClusterId}2", QueueCount), new AzureQueueOptions().ConfigureTestDefaults()); } + catch (SkipException) { } } [SkippableFact, TestCategory("Functional")] diff --git a/test/TestInfrastructure/TestExtensions/TestUtils.cs b/test/TestInfrastructure/TestExtensions/TestUtils.cs index 29c3e5d0b2..aeb51ebf46 100644 --- a/test/TestInfrastructure/TestExtensions/TestUtils.cs +++ b/test/TestInfrastructure/TestExtensions/TestUtils.cs @@ -39,7 +39,8 @@ public static void CheckForAzureStorage() public static void CheckForEventHub() { - if (string.IsNullOrWhiteSpace(EventHubConnectionString)) + if ((UseAadAuthentication && (EventHubFullyQualifiedNamespace == null)) || + (!UseAadAuthentication && string.IsNullOrWhiteSpace(EventHubConnectionString))) { throw new SkipException("No connection string found. Skipping"); } diff --git a/test/Tester/Forwarding/ShutdownSiloTests.cs b/test/Tester/Forwarding/ShutdownSiloTests.cs index 29b94e31d5..5cd9a5fa4d 100644 --- a/test/Tester/Forwarding/ShutdownSiloTests.cs +++ b/test/Tester/Forwarding/ShutdownSiloTests.cs @@ -6,6 +6,8 @@ using System.Diagnostics; using Orleans.Runtime; using Microsoft.Extensions.DependencyInjection; +using Azure.Data.Tables; +using Azure.Identity; namespace Tester.Forwarding { @@ -23,7 +25,7 @@ public void Configure(ISiloBuilder hostBuilder) { options.DeactivationTimeout = DeactivationTimeout; }) - .UseAzureStorageClustering(options => options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString)) + .UseAzureStorageClustering(options => options.TableServiceClient = GetTableServiceClient()) .ConfigureServices(services => services.AddSingleton()) .Configure(options => { @@ -31,6 +33,13 @@ public void Configure(ISiloBuilder hostBuilder) options.NumVotesForDeathDeclaration = 1; }); } + + private static TableServiceClient GetTableServiceClient() + { + return TestDefaultConfiguration.UseAadAuthentication + ? new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()) + : new(TestDefaultConfiguration.DataConnectionString); + } } protected override void CheckPreconditionsOrThrow() diff --git a/test/Tester/Tester.csproj b/test/Tester/Tester.csproj index 40563f9392..86d6c37ae9 100644 --- a/test/Tester/Tester.csproj +++ b/test/Tester/Tester.csproj @@ -15,6 +15,7 @@ + diff --git a/test/TesterInternal/GeoClusterTests/BasicLogTestGrainTests.cs b/test/TesterInternal/GeoClusterTests/BasicLogTestGrainTests.cs index afd8f8489f..b3ca5baf58 100644 --- a/test/TesterInternal/GeoClusterTests/BasicLogTestGrainTests.cs +++ b/test/TesterInternal/GeoClusterTests/BasicLogTestGrainTests.cs @@ -6,6 +6,8 @@ using Tester; using Orleans.Configuration; +using Azure.Data.Tables; +using Azure.Identity; namespace Tests.GeoClusterTests { @@ -35,14 +37,21 @@ public void Configure(ISiloBuilder hostBuilder) .AddCustomStorageBasedLogConsistencyProvider("CustomStoragePrimaryCluster", "A") .AddAzureTableGrainStorageAsDefault(builder => builder.Configure>((options, silo) => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.TableServiceClient = GetTableServiceClient(); })) .AddAzureTableGrainStorage("AzureStore", builder => builder.Configure>((options, silo) => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.TableServiceClient = GetTableServiceClient(); })) .AddMemoryGrainStorage("MemoryStore"); } + + private static TableServiceClient GetTableServiceClient() + { + return TestDefaultConfiguration.UseAadAuthentication + ? new(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential()) + : new(TestDefaultConfiguration.DataConnectionString); + } } } diff --git a/test/TesterInternal/TesterInternal.csproj b/test/TesterInternal/TesterInternal.csproj index f3d14e5802..2ffde2ac10 100644 --- a/test/TesterInternal/TesterInternal.csproj +++ b/test/TesterInternal/TesterInternal.csproj @@ -7,6 +7,7 @@ + diff --git a/test/Transactions/Orleans.Transactions.Azure.Test/AzureTransactionalStateStorageTests.cs b/test/Transactions/Orleans.Transactions.Azure.Test/AzureTransactionalStateStorageTests.cs index 6132499ef2..7fdc37cc47 100644 --- a/test/Transactions/Orleans.Transactions.Azure.Test/AzureTransactionalStateStorageTests.cs +++ b/test/Transactions/Orleans.Transactions.Azure.Test/AzureTransactionalStateStorageTests.cs @@ -5,6 +5,7 @@ using Orleans.Transactions.AzureStorage; using Orleans.Transactions.AzureStorage.Tests; using Orleans.Transactions.TestKit.xUnit; +using Tester.AzureUtils; using TestExtensions; using Xunit; using Xunit.Abstractions; @@ -62,7 +63,7 @@ private static TableServiceClient GetCloudTableCreationClient(ILogger logger) { try { - var creationClient = new TableServiceClient(TestDefaultConfiguration.DataConnectionString); + var creationClient = AzureStorageOperationOptionsExtensions.GetTableServiceClient(); return creationClient; } catch (Exception exc) diff --git a/test/Transactions/Orleans.Transactions.Azure.Test/Orleans.Transactions.Azure.Test.csproj b/test/Transactions/Orleans.Transactions.Azure.Test/Orleans.Transactions.Azure.Test.csproj index 933bbd2770..d8d9ee9728 100644 --- a/test/Transactions/Orleans.Transactions.Azure.Test/Orleans.Transactions.Azure.Test.csproj +++ b/test/Transactions/Orleans.Transactions.Azure.Test/Orleans.Transactions.Azure.Test.csproj @@ -14,5 +14,6 @@ + diff --git a/test/Transactions/Orleans.Transactions.Azure.Test/TestFixture.cs b/test/Transactions/Orleans.Transactions.Azure.Test/TestFixture.cs index 27cd78dfd6..b797e650ba 100644 --- a/test/Transactions/Orleans.Transactions.Azure.Test/TestFixture.cs +++ b/test/Transactions/Orleans.Transactions.Azure.Test/TestFixture.cs @@ -6,6 +6,7 @@ using TestExtensions; using Tester; using Microsoft.Extensions.Configuration; +using Tester.AzureUtils; namespace Orleans.Transactions.AzureStorage.Tests { @@ -32,7 +33,7 @@ public void Configure(ISiloBuilder hostBuilder) .ConfigureTracingForTransactionTests() .AddAzureTableTransactionalStateStorage(TransactionTestConstants.TransactionStore, options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.TableServiceClient = AzureStorageOperationOptionsExtensions.GetTableServiceClient(); }) .UseTransactions(); } @@ -70,7 +71,7 @@ public void Configure(ISiloBuilder hostBuilder) .ConfigureTracingForTransactionTests() .AddFaultInjectionAzureTableTransactionalStateStorage(TransactionTestConstants.TransactionStore, options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.TableServiceClient = AzureStorageOperationOptionsExtensions.GetTableServiceClient(); }) .UseControlledFaultInjectionTransactionState() .UseTransactions() @@ -110,7 +111,7 @@ public void Configure(ISiloBuilder hostBuilder) .ConfigureTracingForTransactionTests() .AddFaultInjectionAzureTableTransactionalStateStorage(TransactionTestConstants.TransactionStore, options => { - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString); + options.TableServiceClient = AzureStorageOperationOptionsExtensions.GetTableServiceClient(); }) .UseTransactions() .ConfigureServices(services => services.AddSingleton(sp => new RandomErrorInjector(probability))); diff --git a/test/Transactions/Orleans.Transactions.Azure.Test/TransactionRecoveryTests.cs b/test/Transactions/Orleans.Transactions.Azure.Test/TransactionRecoveryTests.cs index 7492b562d3..69c48e0898 100644 --- a/test/Transactions/Orleans.Transactions.Azure.Test/TransactionRecoveryTests.cs +++ b/test/Transactions/Orleans.Transactions.Azure.Test/TransactionRecoveryTests.cs @@ -3,6 +3,7 @@ using Orleans.Transactions.TestKit; using Orleans.Transactions.TestKit.xUnit; using Tester; +using Tester.AzureUtils; using TestExtensions; using Xunit; using Xunit.Abstractions; @@ -61,8 +62,7 @@ private class SiloBuilderConfiguratorUsingAzureClustering : ISiloConfigurator { public void Configure(ISiloBuilder hostBuilder) { - hostBuilder.UseAzureStorageClustering(options => - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString)); + hostBuilder.UseAzureStorageClustering(options => options.ConfigureTestDefaults()); } } @@ -70,8 +70,7 @@ private class ClientBuilderConfiguratorUsingAzureClustering : IClientBuilderConf { public void Configure(IConfiguration configuration, IClientBuilder clientBuilder) { - clientBuilder.UseAzureStorageClustering(options => - options.TableServiceClient = new(TestDefaultConfiguration.DataConnectionString)); + clientBuilder.UseAzureStorageClustering(options => options.ConfigureTestDefaults()); } } }