From 8a08537d56167f3f0d9374272780365431f8ef4e Mon Sep 17 00:00:00 2001 From: Ziyue Zheng Date: Tue, 10 May 2022 18:00:37 +0800 Subject: [PATCH] Add DataboxEdgeTestRunner to replace TestBase --- .../DataBoxEdgeBandwidthScheduleTests.cs | 18 +-- .../ScenarioTests/DataBoxEdgeDeviceTests.cs | 14 +- .../ScenarioTests/DataBoxEdgeOrderTests.cs | 14 +- .../ScenarioTests/DataBoxEdgeRoleTests.cs | 15 +- .../DataBoxEdgeScenarioTestBase.cs | 152 ------------------ .../ScenarioTests/DataBoxEdgeShareTests.cs | 16 +- ...ataBoxEdgeStorageAccountCredentialTests.cs | 15 +- .../DataBoxEdgeStorageAccountTests.cs | 14 +- .../DataBoxEdgeStorageContainerTests.cs | 14 +- .../ScenarioTests/DataBoxEdgeTestRunner.cs | 62 +++++++ .../ScenarioTests/DataBoxEdgeTriggerTests.cs | 13 +- .../ScenarioTests/DataBoxEdgeUserTests.cs | 14 +- 12 files changed, 115 insertions(+), 246 deletions(-) delete mode 100644 src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeScenarioTestBase.cs create mode 100644 src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeTestRunner.cs diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeBandwidthScheduleTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeBandwidthScheduleTests.cs index 68df2820b3ce..aaab585578ce 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeBandwidthScheduleTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeBandwidthScheduleTests.cs @@ -18,49 +18,45 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeBandwidthScheduleTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeBandwidthScheduleTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeBandwidthScheduleTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeBandwidthScheduleTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingBandwidthSchedule() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-GetNonExistingBandwidthSchedule"); + TestRunner.RunTestScript("Test-GetNonExistingBandwidthSchedule"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestCreateBandwidthSchedule() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateBandwidthSchedule"); + TestRunner.RunTestScript("Test-CreateBandwidthSchedule"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestUpdateBandwidthSchedule() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-UpdateBandwidthSchedule"); + TestRunner.RunTestScript("Test-UpdateBandwidthSchedule"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestCreateUnlimitedBandwidthSchedule() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateUnlimitedBandwidthSchedule"); + TestRunner.RunTestScript("Test-CreateUnlimitedBandwidthSchedule"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestRemoveBandwidthSchedule() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveBandwidthSchedule"); + TestRunner.RunTestScript("Test-RemoveBandwidthSchedule"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeDeviceTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeDeviceTests.cs index f3c3c560e9b1..021886aedcf1 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeDeviceTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeDeviceTests.cs @@ -17,28 +17,24 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeDeviceTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeDeviceTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeDeviceTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeDeviceTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingDevice() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-GetDeviceNonExistent"); + TestRunner.RunTestScript("Test-GetDeviceNonExistent"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestCreateDevice() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateDevice"); + TestRunner.RunTestScript("Test-CreateDevice"); } @@ -46,7 +42,7 @@ public void TestCreateDevice() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestRemoveDevice() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveDevice"); + TestRunner.RunTestScript("Test-RemoveDevice"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeOrderTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeOrderTests.cs index 7b67f24742fd..ad983bf050ed 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeOrderTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeOrderTests.cs @@ -18,21 +18,17 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeOrderTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeOrderTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeOrderTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeOrderTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingOrder() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-GetOrderNonExistent"); + TestRunner.RunTestScript("Test-GetOrderNonExistent"); } @@ -40,14 +36,14 @@ public void TestGetNonExistingOrder() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestCreateOrder() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateNewOrder"); + TestRunner.RunTestScript("Test-CreateNewOrder"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestRemoveOrder() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveOrder"); + TestRunner.RunTestScript("Test-RemoveOrder"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeRoleTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeRoleTests.cs index 39af86a907fb..efc87b0d47d9 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeRoleTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeRoleTests.cs @@ -17,36 +17,31 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeRoleTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeRoleTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeRoleTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeRoleTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingRole() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, - "Test-GetRoleNonExistent"); + TestRunner.RunTestScript("Test-GetRoleNonExistent"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestCreateRole() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateRole"); + TestRunner.RunTestScript("Test-CreateRole"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestRemoveRole() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveRole"); + TestRunner.RunTestScript("Test-RemoveRole"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeScenarioTestBase.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeScenarioTestBase.cs deleted file mode 100644 index 4b2584dc5c88..000000000000 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeScenarioTestBase.cs +++ /dev/null @@ -1,152 +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 System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using Microsoft.Azure.Commands.Common.Authentication; -using Microsoft.Azure.Management.DataBoxEdge; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using ResourceManagementClient = Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient; -using StorageManagementClient = Microsoft.Azure.Management.Storage.Version2017_10_01.StorageManagementClient; -using TestEnvironmentFactory = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestEnvironmentFactory; - -namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests -{ - public class DataBoxEdgeScenarioTestBase : RMTestBase - { - private readonly EnvironmentSetupHelper _helper; - - protected DataBoxEdgeScenarioTestBase() - { - _helper = new EnvironmentSetupHelper(); - } - - public ResourceManagementClient ResourceManagementClient { get; private set; } - - public DataBoxEdgeManagementClient DataBoxEdgeManagementClient { get; private set; } - - public StorageManagementClient StorageManagementClient { get; private set; } - public static DataBoxEdgeScenarioTestBase NewInstance => new DataBoxEdgeScenarioTestBase(); - - - - /// - /// Methods for invoking PowerShell scripts - /// - /// - /// - public void RunPowerShellTest(ServiceManagement.Common.Models.XunitTracingInterceptor logger, - params string[] scripts) - { - var sf = new StackTrace().GetFrame(1); - var callingClassType = sf.GetMethod().ReflectedType?.ToString(); - var mockName = sf.GetMethod().Name; - - _helper.TracingInterceptor = logger; - RunPsTestWorkflow( - () => scripts, - // no custom cleanup - null, - callingClassType, - mockName); - } - - private void RunPsTestWorkflow( - Func scriptBuilder, - Action cleanup, - string callingClassType, - string mockName) - { - var d = new Dictionary - { - {"Microsoft.Resources", null}, - {"Microsoft.Features", null}, - {"Microsoft.Authorization", null}, - {"Microsoft.Compute", 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); - - var callingClassName = - callingClassType.Split(new[] {"."}, StringSplitOptions.RemoveEmptyEntries).Last(); - - var azDBEPath = _helper.GetRMModulePath("Az.DataBoxEdge.psd1"); - _helper.SetupModules(AzureModule.AzureResourceManager, - _helper.RMProfileModule, - azDBEPath, - "ScenarioTests\\Common.ps1", - "ScenarioTests\\" + callingClassName + ".ps1", - "AzureRM.Storage.ps1", - "AzureRM.Resources.ps1"); - - try - { - var psScripts = scriptBuilder?.Invoke(); - if (psScripts != null) - { - _helper.RunPowerShellTest(psScripts); - } - } - finally - { - cleanup?.Invoke(); - } - } - } - - - protected void SetupManagementClients(MockContext context) - { - var dataBoxEdgeManagementClient = GetDataBoxEdgeManagementClient(context); - var resourceManagementClient = GetResourceManagementClient(context); - var storageManagementClient = GetStorageManagementClient(context); - - _helper.SetupManagementClients( - dataBoxEdgeManagementClient, - resourceManagementClient, - storageManagementClient); - } - - - protected DataBoxEdgeManagementClient GetDataBoxEdgeManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - protected ResourceManagementClient GetResourceManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - protected StorageManagementClient GetStorageManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - } -} \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeShareTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeShareTests.cs index 3243e75860b4..19f58690b7c2 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeShareTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeShareTests.cs @@ -17,35 +17,31 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeShareTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeShareTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeShareTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeShareTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingShare() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-GetShareNonExistent"); + TestRunner.RunTestScript("Test-GetShareNonExistent"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestCreateShare() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateShare"); + TestRunner.RunTestScript("Test-CreateShare"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestCreateLocalShare() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateLocalShare"); + TestRunner.RunTestScript("Test-CreateLocalShare"); } @@ -53,7 +49,7 @@ public void TestCreateLocalShare() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestRemoveShare() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveShare"); + TestRunner.RunTestScript("Test-RemoveShare"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageAccountCredentialTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageAccountCredentialTests.cs index 640759a2d75e..95ff0016ac61 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageAccountCredentialTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageAccountCredentialTests.cs @@ -17,36 +17,31 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeStorageAccountCredentialTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeStorageAccountCredentialTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeStorageAccountCredentialTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeStorageAccountCredentialTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingStorageAccountCredential() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, - "Test-GetStorageAccountCredentialNonExistent"); + TestRunner.RunTestScript("Test-GetStorageAccountCredentialNonExistent"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestCreateStorageAccountCredential() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateStorageAccountCredential"); + TestRunner.RunTestScript("Test-CreateStorageAccountCredential"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestRemoveStorageAccountCredential() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveStorageAccountCredential"); + TestRunner.RunTestScript("Test-RemoveStorageAccountCredential"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageAccountTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageAccountTests.cs index e749f87e0a13..cb30a04f74ed 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageAccountTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageAccountTests.cs @@ -17,35 +17,31 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeStorageAccountTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeStorageAccountTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeStorageAccountTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeStorageAccountTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingEdgeStorageAccount() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-GetEdgeStorageAccountNonExistent"); + TestRunner.RunTestScript("Test-GetEdgeStorageAccountNonExistent"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestCreateEdgeStorageAccount() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateEdgeStorageAccount"); + TestRunner.RunTestScript("Test-CreateEdgeStorageAccount"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestRemoveEdgeStorageAccount() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveEdgeStorageAccount"); + TestRunner.RunTestScript("Test-RemoveEdgeStorageAccount"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageContainerTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageContainerTests.cs index b5a66351d455..bcd3666075f3 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageContainerTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeStorageContainerTests.cs @@ -17,35 +17,31 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeStorageContainerTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeStorageContainerTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeStorageContainerTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeStorageContainerTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingEdgeStorageContainer() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-GetEdgeStorageContainerNonExistent"); + TestRunner.RunTestScript("Test-GetEdgeStorageContainerNonExistent"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestCreateEdgeStorageContainer() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateEdgeStorageContainer"); + TestRunner.RunTestScript("Test-CreateEdgeStorageContainer"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestRemoveEdgeStorageContainer() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveEdgeStorageContainer"); + TestRunner.RunTestScript("Test-RemoveEdgeStorageContainer"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeTestRunner.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeTestRunner.cs new file mode 100644 index 000000000000..1a2fe6854c59 --- /dev/null +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeTestRunner.cs @@ -0,0 +1,62 @@ +// ---------------------------------------------------------------------------------- +// +// 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 System.Collections.Generic; +using Microsoft.Azure.Management.DataBoxEdge; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using ResourceManagementClient = Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient; +using StorageManagementClient = Microsoft.Azure.Management.Storage.Version2017_10_01.StorageManagementClient; +using TestEnvironmentFactory = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestEnvironmentFactory; +using Microsoft.Azure.Commands.TestFx; +using Xunit.Abstractions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests +{ + public class DataBoxEdgeTestRunner + { + protected readonly ITestRunner TestRunner; + + protected DataBoxEdgeTestRunner(ITestOutputHelper output) + { + TestRunner = TestManager.CreateInstance(output) + .WithNewPsScriptFilename($"{GetType().Name}.ps1") + .WithProjectSubfolderForTests("ScenarioTests") + .WithCommonPsScripts(new[] + { + @"Common.ps1", + @"../AzureRM.Storage.ps1", + @"../AzureRM.Resources.ps1" + }) + .WithNewRmModules(helper => new[] + { + helper.RMProfileModule, + helper.GetRMModulePath("Az.DataBoxEdge.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}, + {"Microsoft.Compute", null} + } + ) + .Build(); + } + } +} \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeTriggerTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeTriggerTests.cs index 830fdcfc9482..2a28b2da4b6c 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeTriggerTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeTriggerTests.cs @@ -18,21 +18,18 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeTriggerTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeTriggerTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - public DataBoxEdgeTriggerTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeTriggerTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingTrigger() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-GetNonExistingTrigger"); + TestRunner.RunTestScript("Test-GetNonExistingTrigger"); } @@ -40,14 +37,14 @@ public void TestGetNonExistingTrigger() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestCreateTrigger() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateNewTrigger"); + TestRunner.RunTestScript("Test-CreateNewTrigger"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestRemoveTrigger() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveTrigger"); + TestRunner.RunTestScript("Test-RemoveTrigger"); } } } \ No newline at end of file diff --git a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeUserTests.cs b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeUserTests.cs index aafe21cd7802..74245182771a 100644 --- a/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeUserTests.cs +++ b/src/DataBoxEdge/DataBoxEdge.Test/ScenarioTests/DataBoxEdgeUserTests.cs @@ -18,21 +18,17 @@ namespace Microsoft.Azure.PowerShell.Cmdlets.DataBoxEdge.Test.ScenarioTests { - public class DataBoxEdgeUserTests : DataBoxEdgeScenarioTestBase + public class DataBoxEdgeUserTests : DataBoxEdgeTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public DataBoxEdgeUserTests(Xunit.Abstractions.ITestOutputHelper output) + public DataBoxEdgeUserTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetNonExistingUser() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-GetNonExistingUser"); + TestRunner.RunTestScript("Test-GetNonExistingUser"); } @@ -40,14 +36,14 @@ public void TestGetNonExistingUser() [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestCreateUser() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-CreateNewUser"); + TestRunner.RunTestScript("Test-CreateNewUser"); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void TestRemoveUser() { - DataBoxEdgeScenarioTestBase.NewInstance.RunPowerShellTest(_logger, "Test-RemoveUser"); + TestRunner.RunTestScript("Test-RemoveUser"); } } } \ No newline at end of file