From 55991d095fa03aa7f2f2c883cf32a1dc1197d909 Mon Sep 17 00:00:00 2001 From: Flynn Date: Tue, 10 May 2022 17:54:45 +0800 Subject: [PATCH 1/2] Add AdlaTestRunner and replace AdlaTestsBase --- .../ScenarioTests/AdlaAliasTests.cs | 81 ++---- .../ScenarioTests/AdlaTestRunner.cs | 101 +++++++ .../ScenarioTests/AdlaTests.cs | 81 ++---- .../ScenarioTests/AdlaTestsBase.cs | 263 ------------------ 4 files changed, 159 insertions(+), 367 deletions(-) create mode 100644 src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestRunner.cs delete mode 100644 src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestsBase.cs diff --git a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaAliasTests.cs b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaAliasTests.cs index a0b04865c1ad..d188607d083d 100644 --- a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaAliasTests.cs +++ b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaAliasTests.cs @@ -15,61 +15,48 @@ namespace Microsoft.Azure.Commands.DataLakeAnalytics.Test.ScenarioTests { using Microsoft.WindowsAzure.Commands.ScenarioTest; - using ServiceManagement.Common.Models; using Xunit; - public class AdlaAliasTests : AdlaTestsBase + public class AdlaAliasTests : AdlaTestRunner { - public XunitTracingInterceptor _logger; - - public AdlaAliasTests(Xunit.Abstractions.ITestOutputHelper output) + public AdlaAliasTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact(Skip = "Updated Storage client, test needs rerecorded")] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaAccount() { - AdlaTestsBase.NewInstance.RunPsTest(true, - _logger, - string.Format( - "Test-DataLakeAnalyticsAccount -blobAccountKey -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsAccount -blobAccountKey -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaAccountTiers() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsAccountTiers -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsAccountTiers -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaFirewallRules() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsFirewall -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsFirewall -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaComputePolicy() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsComputePolicy -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsComputePolicy -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } #if NETSTANDARD @@ -80,55 +67,45 @@ public void TestAdlaComputePolicy() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaCatalog() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsCatalog -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsCatalog -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaJob() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsJob -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsJob -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaJobRelationships() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsJobRelationships -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsJobRelationships -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestNegativeAdlaAccount() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-NegativeDataLakeAnalyticsAccount -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-NegativeDataLakeAnalyticsAccount -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestNegativeAdlaJob() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-NegativeDataLakeAnalyticsJob -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-NegativeDataLakeAnalyticsJob -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } } } diff --git a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestRunner.cs b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestRunner.cs new file mode 100644 index 000000000000..185fcb2e098f --- /dev/null +++ b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestRunner.cs @@ -0,0 +1,101 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.DataLake.Analytics; +using Microsoft.Azure.Management.DataLake.Store; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System.Collections.Generic; +using NewResourceManagementClient = Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient; +using Microsoft.Azure.Commands.TestFx; +using Xunit.Abstractions; + +namespace Microsoft.Azure.Commands.DataLakeAnalytics.Test.ScenarioTests +{ + public class AdlaTestRunner + { + internal const string ResourceGroupLocation = "eastus2"; + + protected readonly ITestRunner TestRunner; + + protected AdlaTestRunner(ITestOutputHelper output) + { + TestRunner = TestManager.CreateInstance(output) + .WithNewPsScriptFilename($"{GetType().Name}.ps1") + .WithProjectSubfolderForTests("ScenarioTests") + .WithCommonPsScripts(new[] + { + @"Common.ps1", + @"../AzureRM.Resources.ps1" + }) + .WithNewRmModules(helper => new[] + { + helper.RMProfileModule, + helper.GetRMModulePath("Az.DataLakeAnalytics.psd1"), + helper.GetRMModulePath("Az.DataLakeStore.psd1") + }) + .WithNewRecordMatcherArguments( + userAgentsToIgnore: new Dictionary + { + {"Microsoft.Azure.Management.Resources.ResourceManagementClient", "2016-02-01"} + }, + resourceProviders: new Dictionary + { + {"Microsoft.Resources", null}, + {"Microsoft.Features", null}, + {"Microsoft.Authorization", null} + } + ).WithManagementClients( + GetNewResourceManagementClient, + GetDataLakeStoreAccountManagementClient, + GetDataLakeAnalyticsAccountManagementClient, + GetDataLakeAnalyticsJobManagementClient, + GetDataLakeAnalyticsCatalogManagementClient + ) + .Build(); + } + + private static NewResourceManagementClient GetNewResourceManagementClient(MockContext context) + { + return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); + } + + private static DataLakeStoreAccountManagementClient GetDataLakeStoreAccountManagementClient(MockContext context) + { + return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); + } + + private static DataLakeAnalyticsAccountManagementClient GetDataLakeAnalyticsAccountManagementClient(MockContext context) + { + return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); + } + + private static DataLakeAnalyticsJobManagementClient GetDataLakeAnalyticsJobManagementClient(MockContext context) + { + var currentEnvironment = TestEnvironmentFactory.GetTestEnvironment(); + var toReturn = context.GetServiceClient(currentEnvironment, true); + toReturn.AdlaJobDnsSuffix = + currentEnvironment.Endpoints.DataLakeAnalyticsJobAndCatalogServiceUri.OriginalString.Replace("https://", ""); + return toReturn; + } + + private static DataLakeAnalyticsCatalogManagementClient GetDataLakeAnalyticsCatalogManagementClient(MockContext context) + { + var currentEnvironment = TestEnvironmentFactory.GetTestEnvironment(); + var toReturn = context.GetServiceClient(currentEnvironment, true); + toReturn.AdlaCatalogDnsSuffix = + currentEnvironment.Endpoints.DataLakeAnalyticsJobAndCatalogServiceUri.OriginalString.Replace("https://", ""); + return toReturn; + } + } +} diff --git a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTests.cs b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTests.cs index 41ace1823741..c33bce24d0f1 100644 --- a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTests.cs +++ b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTests.cs @@ -15,61 +15,48 @@ namespace Microsoft.Azure.Commands.DataLakeAnalytics.Test.ScenarioTests { using Microsoft.WindowsAzure.Commands.ScenarioTest; - using ServiceManagement.Common.Models; using Xunit; - public class AdlaTests : AdlaTestsBase + public class AdlaTests : AdlaTestRunner { - public XunitTracingInterceptor _logger; - - public AdlaTests(Xunit.Abstractions.ITestOutputHelper output) + public AdlaTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact(Skip = "Updated Storage client, test needs rerecorded")] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaAccount() { - AdlaTestsBase.NewInstance.RunPsTest(true, - _logger, - string.Format( - "Test-DataLakeAnalyticsAccount -blobAccountKey -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsAccount -blobAccountKey -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaAccountTiers() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsAccountTiers -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsAccountTiers -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaFirewallRules() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsFirewall -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsFirewall -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaComputePolicy() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsComputePolicy -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsComputePolicy -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } #if NETSTANDARD @@ -80,55 +67,45 @@ public void TestAdlaComputePolicy() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaCatalog() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsCatalog -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsCatalog -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaJob() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsJob -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsJob -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestAdlaJobRelationships() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-DataLakeAnalyticsJobRelationships -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-DataLakeAnalyticsJobRelationships -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestNegativeAdlaAccount() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-NegativeDataLakeAnalyticsAccount -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-NegativeDataLakeAnalyticsAccount -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestNegativeAdlaJob() { - AdlaTestsBase.NewInstance.RunPsTest(false, - _logger, - string.Format( - "Test-NegativeDataLakeAnalyticsJob -location '{0}'", - AdlaTestsBase.ResourceGroupLocation)); + TestRunner.RunTestScript(string.Format( + "Test-NegativeDataLakeAnalyticsJob -location '{0}'", + AdlaTestRunner.ResourceGroupLocation)); } } } diff --git a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestsBase.cs b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestsBase.cs deleted file mode 100644 index 2f0122e79963..000000000000 --- a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestsBase.cs +++ /dev/null @@ -1,263 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - - -using Microsoft.Azure.Commands.Common.Authentication; -using Microsoft.Azure.Management.DataLake.Analytics; -using Microsoft.Azure.Management.DataLake.Store; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using NewResourceManagementClient = Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient; -using StorageManagementClient = Microsoft.Azure.Management.Storage.Version2017_10_01.StorageManagementClient; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using System.IO; -using Microsoft.Azure.Management.Internal.Resources.Models; -using Microsoft.Azure.ServiceManagement.Common.Models; -using Sku = Microsoft.Azure.Management.Storage.Version2017_10_01.Models.Sku; -using SkuName = Microsoft.Azure.Management.Storage.Version2017_10_01.Models.SkuName; -using StorageAccountCreateParameters = Microsoft.Azure.Management.Storage.Version2017_10_01.Models.StorageAccountCreateParameters; - -namespace Microsoft.Azure.Commands.DataLakeAnalytics.Test.ScenarioTests -{ - public class AdlaTestsBase : RMTestBase - { - internal string ResourceGroupName { get; set; } - internal string AzureBlobStoreName { get; set; } - internal string AzureBlobStoreAccessKey { get; set; } - internal const string ResourceGroupLocation = "eastus2"; - - private readonly EnvironmentSetupHelper _helper; - - public NewResourceManagementClient NewResourceManagementClient { get; private set; } - - public DataLakeStoreAccountManagementClient DataLakeStoreAccountManagementClient { get; private set; } - - public DataLakeAnalyticsAccountManagementClient DataLakeAnalyticsAccountManagementClient { get; private set; } - - public DataLakeAnalyticsJobManagementClient DataLakeAnalyticsJobManagementClient { get; private set; } - - public DataLakeAnalyticsCatalogManagementClient DataLakeAnalyticsCatalogManagementClient { get; private set; } - - public StorageManagementClient StorageManagementClient { get; private set; } - - public static AdlaTestsBase NewInstance => new AdlaTestsBase(); - - protected AdlaTestsBase() - { - _helper = new EnvironmentSetupHelper(); - } - - public void RunPsTest(bool createWasbAccount, XunitTracingInterceptor logger, params string[] scripts) - { - _helper.TracingInterceptor = logger; - var sf = new StackTrace().GetFrame(1); - var callingClassType = sf.GetMethod().ReflectedType?.ToString(); - var mockName = sf.GetMethod().Name; - - RunPsTestWorkflow(createWasbAccount, - () => scripts, - // no custom cleanup - null, - callingClassType, - mockName); - } - - - public void RunPsTestWorkflow(bool createWasbAccount, - Func scriptBuilder, - Action cleanup, - string callingClassType, - string mockName) - { - var d = new Dictionary - { - {"Microsoft.Resources", null}, - {"Microsoft.Features", null}, - {"Microsoft.Authorization", null} - }; - var providersToIgnore = new Dictionary - { - {"Microsoft.Azure.Management.Resources.ResourceManagementClient", "2016-02-01"} - }; - HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(true, d, providersToIgnore); - HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); - using (var context = MockContext.Start(callingClassType, mockName)) - { - SetupManagementClients(context); - - // register the namespace. - _helper.SetupEnvironment(AzureModule.AzureResourceManager); - var callingClassName = callingClassType.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries).Last(); - _helper.SetupModules( - AzureModule.AzureResourceManager, - "ScenarioTests\\Common.ps1", - "ScenarioTests\\" + callingClassName + ".ps1", - _helper.RMProfileModule, - _helper.GetRMModulePath(@"AzureRM.DataLakeAnalytics.psd1"), - _helper.GetRMModulePath(@"AzureRM.DataLakeStore.psd1"), - "AzureRM.Resources.ps1"); - - if (createWasbAccount) - { - ResourceGroupName = TestUtilities.GenerateName("abarg1"); - TryCreateResourceGroup(ResourceGroupName, ResourceGroupLocation); - AzureBlobStoreName = TestUtilities.GenerateName("azureblob01"); - AzureBlobStoreAccessKey = TryCreateStorageAccount(ResourceGroupName, - AzureBlobStoreName, - "DataLakeAnalyticsTestStorage", "DataLakeAnalyticsTestStorageDescription", ResourceGroupLocation, out _); - } - - try - { - var psScripts = scriptBuilder?.Invoke(); - - if (psScripts == null) return; - // inject the access key into the script if necessary. - for (var i = 0; i < psScripts.Length; i++) - { - if (psScripts[i].Contains("-blobAccountKey") && createWasbAccount) - { - psScripts[i] = psScripts[i].Replace("-blobAccountKey", - string.Format("-blobAccountName {0} -blobAccountKey '{1}'", AzureBlobStoreName, AzureBlobStoreAccessKey)); - } - } - - _helper.RunPowerShellTest(psScripts); - } - finally - { - if (createWasbAccount) - { - try - { - NewResourceManagementClient.ResourceGroups.DeleteWithHttpMessagesAsync(ResourceGroupName).Wait(); - } - catch - { - // best effort cleanup. - } - } - - cleanup?.Invoke(); - } - } - } - - private void SetupManagementClients(MockContext context) - { - DataLakeStoreAccountManagementClient = GetDataLakeStoreAccountManagementClient(context); - DataLakeAnalyticsAccountManagementClient = GetDataLakeAnalyticsAccountManagementClient(context); - DataLakeAnalyticsJobManagementClient = GetDataLakeAnalyticsJobManagementClient(context); - DataLakeAnalyticsCatalogManagementClient = GetDataLakeAnalyticsCatalogManagementClient(context); - StorageManagementClient = GetStorageManagementClient(context); - NewResourceManagementClient = GetNewResourceManagementClient(context); - _helper.SetupManagementClients( - NewResourceManagementClient, - DataLakeAnalyticsAccountManagementClient, - DataLakeAnalyticsJobManagementClient, - DataLakeAnalyticsCatalogManagementClient, - DataLakeStoreAccountManagementClient, - StorageManagementClient - ); - } - - #region client creation helpers - private static StorageManagementClient GetStorageManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - private static NewResourceManagementClient GetNewResourceManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - private static DataLakeStoreAccountManagementClient GetDataLakeStoreAccountManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - private static DataLakeAnalyticsAccountManagementClient GetDataLakeAnalyticsAccountManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - private static DataLakeAnalyticsJobManagementClient GetDataLakeAnalyticsJobManagementClient(MockContext context) - { - var currentEnvironment = TestEnvironmentFactory.GetTestEnvironment(); - var toReturn = context.GetServiceClient(currentEnvironment, true); - toReturn.AdlaJobDnsSuffix = - currentEnvironment.Endpoints.DataLakeAnalyticsJobAndCatalogServiceUri.OriginalString.Replace("https://", ""); - return toReturn; - } - - private static DataLakeAnalyticsCatalogManagementClient GetDataLakeAnalyticsCatalogManagementClient(MockContext context) - { - var currentEnvironment = TestEnvironmentFactory.GetTestEnvironment(); - var toReturn = context.GetServiceClient(currentEnvironment, true); - toReturn.AdlaCatalogDnsSuffix = - currentEnvironment.Endpoints.DataLakeAnalyticsJobAndCatalogServiceUri.OriginalString.Replace("https://", ""); - return toReturn; - } - #endregion - - #region private helper methods - - private void TryCreateResourceGroup(string resourceGroupName, string location) - { - NewResourceManagementClient.ResourceGroups.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, new ResourceGroup { Location = location }).Wait(); - var newlyCreatedGroup = NewResourceManagementClient.ResourceGroups.GetWithHttpMessagesAsync(resourceGroupName).Result; - ThrowIfTrue(newlyCreatedGroup == null, "resourceManagementClient.ResourceGroups.Get returned null."); - ThrowIfTrue(!resourceGroupName.Equals(newlyCreatedGroup?.Body.Name), string.Format("resourceGroupName is not equal to {0}", resourceGroupName)); - } - - public string TryCreateStorageAccount(string resourceGroupName, string storageAccountName, string label, string description, string location, out string storageAccountSuffix) - { - var stoInput = new StorageAccountCreateParameters - { - Location = location, - Sku = new Sku { Name = SkuName.StandardGRS } - }; - - // retrieve the storage account - StorageManagementClient.StorageAccounts.CreateWithHttpMessagesAsync(resourceGroupName, storageAccountName, stoInput).Wait(); - - // retrieve the storage account primary access key - var accessKey = StorageManagementClient.StorageAccounts.ListKeysWithHttpMessagesAsync(resourceGroupName, storageAccountName).Result.Body.Keys.First().Value; - ThrowIfTrue(string.IsNullOrEmpty(accessKey), "storageManagementClient.StorageAccounts.ListKeys returned null."); - - // set the storage account suffix - var getResponse = StorageManagementClient.StorageAccounts.GetPropertiesWithHttpMessagesAsync(resourceGroupName, storageAccountName).Result; - storageAccountSuffix = getResponse.Body.PrimaryEndpoints.Blob; - storageAccountSuffix = storageAccountSuffix.Replace("https://", "").TrimEnd('/'); - storageAccountSuffix = storageAccountSuffix.Replace(storageAccountName, "").TrimStart('.'); - - return accessKey; - } - - private static void ThrowIfTrue(bool condition, string message) - { - if (condition) - { - throw new Exception(message); - } - } - #endregion - } -} From 7c8f44740b3341a70cdbda53e25386fc2d0798ad Mon Sep 17 00:00:00 2001 From: Flynn Date: Tue, 10 May 2022 18:44:11 +0800 Subject: [PATCH 2/2] move ResourceGroupLocation to test page --- .../ScenarioTests/AdlaAliasTests.cs | 21 ++++++++++--------- .../ScenarioTests/AdlaTests.cs | 21 ++++++++++--------- ...nner.cs => DataLakeAnalyticsTestRunner.cs} | 6 ++---- 3 files changed, 24 insertions(+), 24 deletions(-) rename src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/{AdlaTestRunner.cs => DataLakeAnalyticsTestRunner.cs} (96%) diff --git a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaAliasTests.cs b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaAliasTests.cs index d188607d083d..afa679b20486 100644 --- a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaAliasTests.cs +++ b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaAliasTests.cs @@ -17,8 +17,9 @@ namespace Microsoft.Azure.Commands.DataLakeAnalytics.Test.ScenarioTests using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; - public class AdlaAliasTests : AdlaTestRunner + public class AdlaAliasTests : DataLakeAnalyticsTestRunner { + internal const string ResourceGroupLocation = "eastus2"; public AdlaAliasTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { } @@ -29,7 +30,7 @@ public void TestAdlaAccount() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsAccount -blobAccountKey -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -38,7 +39,7 @@ public void TestAdlaAccountTiers() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsAccountTiers -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -47,7 +48,7 @@ public void TestAdlaFirewallRules() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsFirewall -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -56,7 +57,7 @@ public void TestAdlaComputePolicy() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsComputePolicy -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } #if NETSTANDARD @@ -69,7 +70,7 @@ public void TestAdlaCatalog() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsCatalog -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -78,7 +79,7 @@ public void TestAdlaJob() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsJob -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -87,7 +88,7 @@ public void TestAdlaJobRelationships() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsJobRelationships -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -96,7 +97,7 @@ public void TestNegativeAdlaAccount() { TestRunner.RunTestScript(string.Format( "Test-NegativeDataLakeAnalyticsAccount -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -105,7 +106,7 @@ public void TestNegativeAdlaJob() { TestRunner.RunTestScript(string.Format( "Test-NegativeDataLakeAnalyticsJob -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } } } diff --git a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTests.cs b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTests.cs index c33bce24d0f1..2e24ed097917 100644 --- a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTests.cs +++ b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTests.cs @@ -17,8 +17,9 @@ namespace Microsoft.Azure.Commands.DataLakeAnalytics.Test.ScenarioTests using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; - public class AdlaTests : AdlaTestRunner + public class AdlaTests : DataLakeAnalyticsTestRunner { + internal const string ResourceGroupLocation = "eastus2"; public AdlaTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { } @@ -29,7 +30,7 @@ public void TestAdlaAccount() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsAccount -blobAccountKey -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -38,7 +39,7 @@ public void TestAdlaAccountTiers() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsAccountTiers -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -47,7 +48,7 @@ public void TestAdlaFirewallRules() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsFirewall -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -56,7 +57,7 @@ public void TestAdlaComputePolicy() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsComputePolicy -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } #if NETSTANDARD @@ -69,7 +70,7 @@ public void TestAdlaCatalog() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsCatalog -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -78,7 +79,7 @@ public void TestAdlaJob() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsJob -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -87,7 +88,7 @@ public void TestAdlaJobRelationships() { TestRunner.RunTestScript(string.Format( "Test-DataLakeAnalyticsJobRelationships -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -96,7 +97,7 @@ public void TestNegativeAdlaAccount() { TestRunner.RunTestScript(string.Format( "Test-NegativeDataLakeAnalyticsAccount -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } [Fact] @@ -105,7 +106,7 @@ public void TestNegativeAdlaJob() { TestRunner.RunTestScript(string.Format( "Test-NegativeDataLakeAnalyticsJob -location '{0}'", - AdlaTestRunner.ResourceGroupLocation)); + ResourceGroupLocation)); } } } diff --git a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestRunner.cs b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/DataLakeAnalyticsTestRunner.cs similarity index 96% rename from src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestRunner.cs rename to src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/DataLakeAnalyticsTestRunner.cs index 185fcb2e098f..ce1098cdb7be 100644 --- a/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/AdlaTestRunner.cs +++ b/src/DataLakeAnalytics/DataLakeAnalytics.Test/ScenarioTests/DataLakeAnalyticsTestRunner.cs @@ -22,13 +22,11 @@ namespace Microsoft.Azure.Commands.DataLakeAnalytics.Test.ScenarioTests { - public class AdlaTestRunner + public class DataLakeAnalyticsTestRunner { - internal const string ResourceGroupLocation = "eastus2"; - protected readonly ITestRunner TestRunner; - protected AdlaTestRunner(ITestOutputHelper output) + protected DataLakeAnalyticsTestRunner(ITestOutputHelper output) { TestRunner = TestManager.CreateInstance(output) .WithNewPsScriptFilename($"{GetType().Name}.ps1")