diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/IotDpsController.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/IotDpsController.cs deleted file mode 100644 index 1b7778555144..000000000000 --- a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/IotDpsController.cs +++ /dev/null @@ -1,104 +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.Diagnostics; -using Microsoft.Azure.Management.Internal.Resources; -using Microsoft.Azure.Commands.Common.Authentication; -using Microsoft.Azure.Management.DeviceProvisioningServices; -using Microsoft.Azure.Management.IotHub; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using System; -using System.IO; -using System.Linq; -using Microsoft.Azure.ServiceManagement.Common.Models; - -namespace Commands.DeviceProvisioningServices.Test -{ - public sealed class IotDpsController - { - private readonly EnvironmentSetupHelper _helper; - - public ResourceManagementClient ResourceManagementClient { get; private set; } - - public IotHubClient IotHubClient { get; private set; } - - public IotDpsClient IotDpsClient { get; private set; } - - public static IotDpsController NewInstance => new IotDpsController(); - - public IotDpsController() - { - _helper = new EnvironmentSetupHelper(); - } - - public void RunPsTest(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; - - HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); - using (MockContext context = MockContext.Start(callingClassType, mockName)) - { - SetupManagementClients(context); - - _helper.SetupEnvironment(AzureModule.AzureResourceManager); - - var callingClassName = callingClassType?.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries).Last(); - _helper.SetupModules(AzureModule.AzureResourceManager, - "ScenarioTests\\" + callingClassName + ".ps1", - _helper.RMProfileModule, - _helper.GetRMModulePath(@"AzureRM.DeviceProvisioningServices.psd1"), - _helper.GetRMModulePath(@"AzureRM.IotHub.psd1"), - "AzureRM.Resources.ps1" - ); - - _helper.RunPowerShellTest(scripts); - } - } - - private void SetupManagementClients(MockContext context) - { - ResourceManagementClient = GetResourceManagementClient(context); - IotHubClient = GetIotHubClient(context); - IotDpsClient = GetIotDpsClient(context); - - _helper.SetupManagementClients( - ResourceManagementClient, - IotHubClient, - IotDpsClient - ); - } - - private static ResourceManagementClient GetResourceManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - private static IotHubClient GetIotHubClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - private static IotDpsClient GetIotDpsClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - } -} - diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/DeviceProvisioningServicesTestRunner.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/DeviceProvisioningServicesTestRunner.cs new file mode 100644 index 000000000000..b2eed20cfc36 --- /dev/null +++ b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/DeviceProvisioningServicesTestRunner.cs @@ -0,0 +1,43 @@ +// ---------------------------------------------------------------------------------- +// +// 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.TestFx; +using Xunit.Abstractions; + +namespace Commands.DeviceProvisioningServices.Test +{ + public class DeviceProvisioningServicesTestRunner + { + protected readonly ITestRunner TestRunner; + + protected DeviceProvisioningServicesTestRunner(ITestOutputHelper output) + { + TestRunner = TestManager.CreateInstance(output) + .WithNewPsScriptFilename($"{GetType().Name}.ps1") + .WithProjectSubfolderForTests("ScenarioTests") + .WithCommonPsScripts(new[] + { + "../AzureRM.Resources.ps1" + }) + .WithNewRmModules(helper => new[] + { + helper.RMProfileModule, + helper.GetRMModulePath("Az.DeviceProvisioningServices.psd1"), + helper.GetRMModulePath("Az.IotHub.psd1") + }) + .Build(); + } + } +} + diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsAccessPolicyTests.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsAccessPolicyTests.cs index 8d6923673631..f4efafdd4eb5 100644 --- a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsAccessPolicyTests.cs +++ b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsAccessPolicyTests.cs @@ -12,29 +12,22 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.ServiceManagement.Common.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Xunit; -using Xunit.Abstractions; namespace Commands.DeviceProvisioningServices.Test { - public class IotDpsAccessPolicyTests : RMTestBase + public class IotDpsAccessPolicyTests : DeviceProvisioningServicesTestRunner { - public XunitTracingInterceptor _logger; - - public IotDpsAccessPolicyTests(Xunit.Abstractions.ITestOutputHelper output) + public IotDpsAccessPolicyTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void IotDpsAccessPolicyLifeCycle() { - IotDpsController.NewInstance.RunPsTest(_logger, "Test-AzureIotDpsAccessPolicyLifeCycle"); + TestRunner.RunTestScript("Test-AzureIotDpsAccessPolicyLifeCycle"); } } } diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsCertificateTests.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsCertificateTests.cs index 2ecbe5f19392..efd40138ddbb 100644 --- a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsCertificateTests.cs +++ b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsCertificateTests.cs @@ -15,22 +15,15 @@ using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.ScenarioTest; -using Microsoft.Azure.ServiceManagement.Common.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Xunit; -using Xunit.Abstractions; namespace Commands.DeviceProvisioningServices.Test { - public class IotDpsCertificateTests : RMTestBase + public class IotDpsCertificateTests : DeviceProvisioningServicesTestRunner { - public XunitTracingInterceptor _logger; - - public IotDpsCertificateTests(Xunit.Abstractions.ITestOutputHelper output) + public IotDpsCertificateTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact(Skip = "Access denied error on CertEnroll CX509 Enrollment CreateRequest")] @@ -51,7 +44,7 @@ public void IotDpsCertificateLifeCycle() AzureSession.Instance.DataStore = dataStore; - IotDpsController.NewInstance.RunPsTest(_logger, "Test-AzureIotDpsCertificateLifeCycle"); + TestRunner.RunTestScript("Test-AzureIotDpsCertificateLifeCycle"); } } } diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsEnrollmentGroupTests.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsEnrollmentGroupTests.cs index 91aefa4eb0f6..789bdef85444 100644 --- a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsEnrollmentGroupTests.cs +++ b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsEnrollmentGroupTests.cs @@ -12,29 +12,22 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.ServiceManagement.Common.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Xunit; -using Xunit.Abstractions; namespace Commands.DeviceProvisioningServices.Test { - public class IotDpsEnrollmentGroupTests : RMTestBase + public class IotDpsEnrollmentGroupTests : DeviceProvisioningServicesTestRunner { - public XunitTracingInterceptor _logger; - - public IotDpsEnrollmentGroupTests(Xunit.Abstractions.ITestOutputHelper output) + public IotDpsEnrollmentGroupTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void IotDpsEnrollmentGroupLifeCycle() { - IotDpsController.NewInstance.RunPsTest(_logger, "Test-AzIotDpsEnrollmentGroupLifeCycle"); + TestRunner.RunTestScript("Test-AzIotDpsEnrollmentGroupLifeCycle"); } } } diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsEnrollmentTests.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsEnrollmentTests.cs index 94a8c464384d..6fcd5be92b64 100644 --- a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsEnrollmentTests.cs +++ b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsEnrollmentTests.cs @@ -12,29 +12,22 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.ServiceManagement.Common.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Xunit; -using Xunit.Abstractions; namespace Commands.DeviceProvisioningServices.Test { - public class IotDpsEnrollmentTests : RMTestBase + public class IotDpsEnrollmentTests : DeviceProvisioningServicesTestRunner { - public XunitTracingInterceptor _logger; - - public IotDpsEnrollmentTests(Xunit.Abstractions.ITestOutputHelper output) + public IotDpsEnrollmentTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void IotDpsEnrollmentLifeCycle() { - IotDpsController.NewInstance.RunPsTest(_logger, "Test-AzIotDpsEnrollmentLifeCycle"); + TestRunner.RunTestScript("Test-AzIotDpsEnrollmentLifeCycle"); } } } diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsLinkedHubTests.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsLinkedHubTests.cs index c6835996a22b..fc281dd7bd1a 100644 --- a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsLinkedHubTests.cs +++ b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsLinkedHubTests.cs @@ -12,29 +12,22 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.ServiceManagement.Common.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Xunit; -using Xunit.Abstractions; namespace Commands.DeviceProvisioningServices.Test { - public class IotDpsLinkedHubTests : RMTestBase + public class IotDpsLinkedHubTests : DeviceProvisioningServicesTestRunner { - public XunitTracingInterceptor _logger; - - public IotDpsLinkedHubTests(Xunit.Abstractions.ITestOutputHelper output) + public IotDpsLinkedHubTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void IotDpsLinkedHubLifeCycle() { - IotDpsController.NewInstance.RunPsTest(_logger, "Test-AzureIotDpsLinkedHubLifeCycle"); + TestRunner.RunTestScript("Test-AzureIotDpsLinkedHubLifeCycle"); } } } diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsRegistrationTests.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsRegistrationTests.cs index cbd491e52d35..1ab1a7a20238 100644 --- a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsRegistrationTests.cs +++ b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsRegistrationTests.cs @@ -12,29 +12,22 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.ServiceManagement.Common.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Xunit; -using Xunit.Abstractions; namespace Commands.DeviceProvisioningServices.Test { - public class IotDpsRegistrationTests : RMTestBase + public class IotDpsRegistrationTests : DeviceProvisioningServicesTestRunner { - public XunitTracingInterceptor _logger; - - public IotDpsRegistrationTests(Xunit.Abstractions.ITestOutputHelper output) + public IotDpsRegistrationTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.LiveOnly)] public void IotDpsRegistrationLifeCycle() { - IotDpsController.NewInstance.RunPsTest(_logger, "Test-AzIotDpsRegistrationLifeCycle"); + TestRunner.RunTestScript("Test-AzIotDpsRegistrationLifeCycle"); } } } diff --git a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsTests.cs b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsTests.cs index 6c3c34074bcc..3e9bf6e9fded 100644 --- a/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsTests.cs +++ b/src/DeviceProvisioningServices/DeviceProvisioningServices.Test/ScenarioTests/IotDpsTests.cs @@ -12,29 +12,22 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.ServiceManagement.Common.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Xunit; -using Xunit.Abstractions; namespace Commands.DeviceProvisioningServices.Test { - public class IotDpsTests : RMTestBase + public class IotDpsTests : DeviceProvisioningServicesTestRunner { - public XunitTracingInterceptor _logger; - - public IotDpsTests(Xunit.Abstractions.ITestOutputHelper output) + public IotDpsTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void IotDpsLifeCycle() { - IotDpsController.NewInstance.RunPsTest(_logger, "Test-AzureIotDpsLifeCycle"); + TestRunner.RunTestScript("Test-AzureIotDpsLifeCycle"); } } }