From 22a36981eeda8c098984e0fb4976692c2d9b882c Mon Sep 17 00:00:00 2001 From: Ziyue Zheng Date: Mon, 9 May 2022 21:13:49 +0800 Subject: [PATCH 1/2] Add BillingTestRunner to replace TestController --- .../ScenarioTests/BillingAccountsTests.cs | 24 ++-- .../ScenarioTests/BillingPeriodsTests.cs | 18 +-- .../ScenarioTests/BillingProfilesTests.cs | 18 +-- .../ScenarioTests/BillingTestRunner.cs | 51 +++++++ .../ScenarioTests/EnrollmentAccountTests.cs | 14 +- .../ScenarioTests/InvoiceSectionsTests.cs | 16 +-- .../ScenarioTests/InvoicesTests.cs | 46 +++---- .../ScenarioTests/TestController.cs | 125 ----------------- .../Billing/help/Get-AzBillingInvoice.md | 2 +- .../ScenarioTests/BillingTestRunner.cs | 55 ++++++++ .../ScenarioTests/BudgetTests.cs | 18 +-- .../ScenarioTests/MarketplaceTests.cs | 20 +-- .../ScenarioTests/PriceSheetTests.cs | 19 +-- .../ScenarioTests/ReservationTests.cs | 25 ++-- .../ScenarioTests/TestController.cs | 130 ------------------ .../ScenarioTests/UsageDetailsTests.cs | 25 ++-- .../UsageAggregatesTestController.cs | 1 + 17 files changed, 190 insertions(+), 417 deletions(-) create mode 100644 src/Billing/Billing.Test/ScenarioTests/BillingTestRunner.cs delete mode 100644 src/Billing/Billing.Test/ScenarioTests/TestController.cs create mode 100644 src/Billing/Consumption.Test/ScenarioTests/BillingTestRunner.cs delete mode 100644 src/Billing/Consumption.Test/ScenarioTests/TestController.cs rename src/Billing/UsageAggregates.Test/{Common => ScenarioTests}/UsageAggregatesTestController.cs (96%) diff --git a/src/Billing/Billing.Test/ScenarioTests/BillingAccountsTests.cs b/src/Billing/Billing.Test/ScenarioTests/BillingAccountsTests.cs index c740a975c0b0..f1e6afbaa79b 100644 --- a/src/Billing/Billing.Test/ScenarioTests/BillingAccountsTests.cs +++ b/src/Billing/Billing.Test/ScenarioTests/BillingAccountsTests.cs @@ -13,70 +13,64 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Billing.Test.ScenarioTests.ScenarioTest; -using Microsoft.Azure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; namespace Microsoft.Azure.Commands.Billing.Test.ScenarioTests { - public class BillingAccountsTests + public class BillingAccountsTests : BillingTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public BillingAccountsTests(Xunit.Abstractions.ITestOutputHelper output) + public BillingAccountsTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingAccounts() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingAccounts"); + TestRunner.RunTestScript("Test-ListBillingAccounts"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingAccountsWithAddress() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingAccountsWithAddress"); + TestRunner.RunTestScript("Test-ListBillingAccountsWithAddress"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingAccountsWithBillingProfiles() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingAccountsWithBillingProfiles"); + TestRunner.RunTestScript("Test-ListBillingAccountsWithBillingProfiles"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingAccountsWithInvoiceSections() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingAccountsWithInvoiceSections"); + TestRunner.RunTestScript("Test-ListBillingAccountsWithInvoiceSections"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingEntitiesToCreateSubscription() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingEntitiesToCreateSubscription"); + TestRunner.RunTestScript("Test-ListBillingEntitiesToCreateSubscription"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetBillingAccountWithName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetBillingAccountWithName"); + TestRunner.RunTestScript("Test-GetBillingAccountWithName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetBillingAccountWithNames() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetBillingAccountWithNames"); + TestRunner.RunTestScript("Test-GetBillingAccountWithNames"); } } } diff --git a/src/Billing/Billing.Test/ScenarioTests/BillingPeriodsTests.cs b/src/Billing/Billing.Test/ScenarioTests/BillingPeriodsTests.cs index 9e13b0cab546..2aa531b696d4 100644 --- a/src/Billing/Billing.Test/ScenarioTests/BillingPeriodsTests.cs +++ b/src/Billing/Billing.Test/ScenarioTests/BillingPeriodsTests.cs @@ -13,49 +13,43 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Billing.Test.ScenarioTests.ScenarioTest; -using Microsoft.Azure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; namespace Microsoft.Azure.Commands.Billing.Test.ScenarioTests { - public class BillingPeriodsTests + public class BillingPeriodsTests : BillingTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public BillingPeriodsTests(Xunit.Abstractions.ITestOutputHelper output) + public BillingPeriodsTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingPeriods() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingPeriods"); + TestRunner.RunTestScript("Test-ListBillingPeriods"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingPeriodsWithMaxCount() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingPeriodsWithMaxCount"); + TestRunner.RunTestScript("Test-ListBillingPeriodsWithMaxCount"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetBillingPeriodWithName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetBillingPeriodWithName"); + TestRunner.RunTestScript("Test-GetBillingPeriodWithName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetBillingPeriodWithNames() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetBillingPeriodWithNames"); + TestRunner.RunTestScript("Test-GetBillingPeriodWithNames"); } } } diff --git a/src/Billing/Billing.Test/ScenarioTests/BillingProfilesTests.cs b/src/Billing/Billing.Test/ScenarioTests/BillingProfilesTests.cs index 43d6fcae4a1f..d8069a8e0203 100644 --- a/src/Billing/Billing.Test/ScenarioTests/BillingProfilesTests.cs +++ b/src/Billing/Billing.Test/ScenarioTests/BillingProfilesTests.cs @@ -13,49 +13,43 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Billing.Test.ScenarioTests.ScenarioTest; -using Microsoft.Azure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; namespace Microsoft.Azure.Commands.Billing.Test.ScenarioTests { - public class BillingProfilesTests + public class BillingProfilesTests : BillingTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public BillingProfilesTests(Xunit.Abstractions.ITestOutputHelper output) + public BillingProfilesTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingProfiles() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingProfiles"); + TestRunner.RunTestScript("Test-ListBillingProfiles"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetBillingProfileWithName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetBillingProfileWithName"); + TestRunner.RunTestScript("Test-GetBillingProfileWithName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetBillingProfileWithInvoiceSections() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetBillingProfileWithInvoiceSections"); + TestRunner.RunTestScript("Test-GetBillingProfileWithInvoiceSections"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetBillingProfileByNameWithInvoiceSections() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetBillingProfileByNameWithInvoiceSections"); + TestRunner.RunTestScript("Test-GetBillingProfileByNameWithInvoiceSections"); } } } diff --git a/src/Billing/Billing.Test/ScenarioTests/BillingTestRunner.cs b/src/Billing/Billing.Test/ScenarioTests/BillingTestRunner.cs new file mode 100644 index 000000000000..78c83b55d654 --- /dev/null +++ b/src/Billing/Billing.Test/ScenarioTests/BillingTestRunner.cs @@ -0,0 +1,51 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Commands.TestFx; +using Xunit.Abstractions; + +namespace Microsoft.Azure.Commands.Billing.Test.ScenarioTests.ScenarioTest +{ + public class BillingTestRunner + { + protected readonly ITestRunner TestRunner; + + protected BillingTestRunner(ITestOutputHelper output) + { + TestRunner = TestManager.CreateInstance (output) + .WithNewPsScriptFilename ($"{GetType().Name}.ps1") + .WithProjectSubfolderForTests ("ScenarioTests") + .WithNewRmModules (helper => new[] + { + helper.RMProfileModule, + helper.GetRMModulePath("Az.Billing.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(); + } + } +} diff --git a/src/Billing/Billing.Test/ScenarioTests/EnrollmentAccountTests.cs b/src/Billing/Billing.Test/ScenarioTests/EnrollmentAccountTests.cs index d062bf5c71c8..742af12c4375 100644 --- a/src/Billing/Billing.Test/ScenarioTests/EnrollmentAccountTests.cs +++ b/src/Billing/Billing.Test/ScenarioTests/EnrollmentAccountTests.cs @@ -13,35 +13,29 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Billing.Test.ScenarioTests.ScenarioTest; -using Microsoft.Azure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; namespace Microsoft.Azure.Commands.Billing.Test.ScenarioTests { - public class EnrollmentAccountTests + public class EnrollmentAccountTests : BillingTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public EnrollmentAccountTests(Xunit.Abstractions.ITestOutputHelper output) + public EnrollmentAccountTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListEnrollmentAccounts() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListEnrollmentAccounts"); + TestRunner.RunTestScript("Test-ListEnrollmentAccounts"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetEnrollmentAccountWithName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetEnrollmentAccountWithName"); + TestRunner.RunTestScript("Test-GetEnrollmentAccountWithName"); } } } diff --git a/src/Billing/Billing.Test/ScenarioTests/InvoiceSectionsTests.cs b/src/Billing/Billing.Test/ScenarioTests/InvoiceSectionsTests.cs index b9ddd234c130..bf7b72a114b0 100644 --- a/src/Billing/Billing.Test/ScenarioTests/InvoiceSectionsTests.cs +++ b/src/Billing/Billing.Test/ScenarioTests/InvoiceSectionsTests.cs @@ -13,42 +13,36 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Billing.Test.ScenarioTests.ScenarioTest; -using Microsoft.Azure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; namespace Microsoft.Azure.Commands.Billing.Test.ScenarioTests { - public class InvoiceSectionsTests + public class InvoiceSectionsTests : BillingTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public InvoiceSectionsTests(Xunit.Abstractions.ITestOutputHelper output) + public InvoiceSectionsTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListInvoiceSections() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListInvoiceSections"); + TestRunner.RunTestScript("Test-ListInvoiceSections"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetInvoiceSectionWithName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetInvoiceSectionWithName"); + TestRunner.RunTestScript("Test-GetInvoiceSectionWithName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetInvoiceSectionWithNames() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetInvoiceSectionWithNames"); + TestRunner.RunTestScript("Test-GetInvoiceSectionWithNames"); } } } diff --git a/src/Billing/Billing.Test/ScenarioTests/InvoicesTests.cs b/src/Billing/Billing.Test/ScenarioTests/InvoicesTests.cs index 53628c31fcb0..c9d85fd40910 100644 --- a/src/Billing/Billing.Test/ScenarioTests/InvoicesTests.cs +++ b/src/Billing/Billing.Test/ScenarioTests/InvoicesTests.cs @@ -13,56 +13,50 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Billing.Test.ScenarioTests.ScenarioTest; -using Microsoft.Azure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; namespace Microsoft.Azure.Commands.Billing.Test.ScenarioTests { - public class InvoicesTests + public class InvoicesTests : BillingTestRunner { - private ServiceManagement.Common.Models.XunitTracingInterceptor _logger; - - public InvoicesTests(Xunit.Abstractions.ITestOutputHelper output) + public InvoicesTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new ServiceManagement.Common.Models.XunitTracingInterceptor(output); - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListInvoices() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListInvoices"); + TestRunner.RunTestScript("Test-ListInvoices"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListInvoicesWithDownloadUrl() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListInvoicesWithDownloadUrl"); + TestRunner.RunTestScript("Test-ListInvoicesWithDownloadUrl"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListInvoicesWithMaxCount() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListInvoicesWithMaxCount"); + TestRunner.RunTestScript("Test-ListInvoicesWithMaxCount"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetLatestInvoice() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetLatestInvoice"); + TestRunner.RunTestScript("Test-GetLatestInvoice"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetInvoiceByNameWithDownloadUrl() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetInvoiceByNameWithDownloadUrl"); + TestRunner.RunTestScript("Test-GetInvoiceByNameWithDownloadUrl"); } // Modern invoice @@ -70,7 +64,7 @@ public void TestGetInvoiceByNameWithDownloadUrl() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetModernInvoiceByName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetModernInvoiceByName"); + TestRunner.RunTestScript("Test-GetModernInvoiceByName"); } // billing Account tests @@ -78,49 +72,49 @@ public void TestGetModernInvoiceByName() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListModernInvoicesByBillingAccountName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListModernInvoicesByBillingAccountName"); + TestRunner.RunTestScript("Test-ListModernInvoicesByBillingAccountName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListModernInvoicesByBillingAccountNameWithDownloadUrl() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListModernInvoicesByBillingAccountNameWithDownloadUrl"); + TestRunner.RunTestScript("Test-ListModernInvoicesByBillingAccountNameWithDownloadUrl"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListModernInvoicesByBillingAccountNameWithMaxCount() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListModernInvoicesByBillingAccountNameWithMaxCount"); + TestRunner.RunTestScript("Test-ListModernInvoicesByBillingAccountNameWithMaxCount"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetLatestModernInvoiceByBillingAccountName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetLatestModernInvoiceByBillingAccountName"); + TestRunner.RunTestScript("Test-GetLatestModernInvoiceByBillingAccountName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetLatestModernInvoiceByBillingAccountNameWithDownloadUrl() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetLatestModernInvoiceByBillingAccountNameWithDownloadUrl"); + TestRunner.RunTestScript("Test-GetLatestModernInvoiceByBillingAccountNameWithDownloadUrl"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetModernInvoiceByBillingAccountNameAndInvoiceNameWithDownloadUrl() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetModernInvoiceByBillingAccountNameAndInvoiceNameWithDownloadUrl"); + TestRunner.RunTestScript("Test-GetModernInvoiceByBillingAccountNameAndInvoiceNameWithDownloadUrl"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetModernInvoiceByBillingAccountNameAndInvoiceName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetModernInvoiceByBillingAccountNameAndInvoiceName"); + TestRunner.RunTestScript("Test-GetModernInvoiceByBillingAccountNameAndInvoiceName"); } // billing Profile tests @@ -128,35 +122,35 @@ public void TestGetModernInvoiceByBillingAccountNameAndInvoiceName() [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListModernInvoicesByBillingProfileName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListModernInvoicesByBillingProfileName"); + TestRunner.RunTestScript("Test-ListModernInvoicesByBillingProfileName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListModernInvoicesByBillingProfileNameWithDownloadUrl() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListModernInvoicesByBillingProfileNameWithDownloadUrl"); + TestRunner.RunTestScript("Test-ListModernInvoicesByBillingProfileNameWithDownloadUrl"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListModernInvoicesByBillingProfileNameMaxCount() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListModernInvoicesByBillingProfileNameMaxCount"); + TestRunner.RunTestScript("Test-ListModernInvoicesByBillingProfileNameMaxCount"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetLatestInvoicesByBillingProfileName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetLatestInvoicesByBillingProfileName"); + TestRunner.RunTestScript("Test-GetLatestInvoicesByBillingProfileName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetModernInvoicesByBillingAccountNameBillingProfileNameBillingPeriod() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetInvoicesByBillingAccountNameBillingProfileNameBillingPeriod"); + TestRunner.RunTestScript("Test-GetInvoicesByBillingAccountNameBillingProfileNameBillingPeriod"); } } } diff --git a/src/Billing/Billing.Test/ScenarioTests/TestController.cs b/src/Billing/Billing.Test/ScenarioTests/TestController.cs deleted file mode 100644 index 873b2e497546..000000000000 --- a/src/Billing/Billing.Test/ScenarioTests/TestController.cs +++ /dev/null @@ -1,125 +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.Billing; -using Microsoft.Azure.Management.Internal.Resources; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using TestEnvironmentFactory = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestEnvironmentFactory; - -namespace Microsoft.Azure.Commands.Billing.Test.ScenarioTests.ScenarioTest -{ - public class TestController : RMTestBase - { - private readonly EnvironmentSetupHelper _helper; - - public ResourceManagementClient ResourceManagementClient { get; private set; } - - public BillingManagementClient BillingManagementClient { get; private set; } - - public static TestController NewInstance => new TestController(); - - protected TestController() - { - _helper = new EnvironmentSetupHelper(); - } - - protected void SetupManagementClients(MockContext context) - { - ResourceManagementClient = GetResourceManagementClient(context); - BillingManagementClient = GetBillingManagementClient(context); - - _helper.SetupManagementClients( - ResourceManagementClient, - BillingManagementClient); - } - - 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); - } - - public void RunPsTestWorkflow( - Func scriptBuilder, - Action cleanup, - string callingClassType, - string mockName) - { - var providers = 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, providers, providersToIgnore); - HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); - - using (var context = MockContext.Start(callingClassType, mockName)) - { - SetupManagementClients(context); - _helper.SetupEnvironment(AzureModule.AzureResourceManager); - var callingClassName = callingClassType.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries).Last(); - _helper.SetupModules(AzureModule.AzureResourceManager, - _helper.RMProfileModule, - _helper.GetRMModulePath("AzureRM.Billing.psd1"), - "ScenarioTests\\" + callingClassName + ".ps1"); - try - { - var psScripts = scriptBuilder?.Invoke(); - if (psScripts != null) - { - _helper.RunPowerShellTest(psScripts); - } - } - finally - { - cleanup?.Invoke(); - } - } - } - - private static ResourceManagementClient GetResourceManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - private static BillingManagementClient GetBillingManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - } -} diff --git a/src/Billing/Billing/help/Get-AzBillingInvoice.md b/src/Billing/Billing/help/Get-AzBillingInvoice.md index 39fc9ca28b97..44f3031541cb 100644 --- a/src/Billing/Billing/help/Get-AzBillingInvoice.md +++ b/src/Billing/Billing/help/Get-AzBillingInvoice.md @@ -1,4 +1,4 @@ ---- +--- external help file: Microsoft.Azure.PowerShell.Cmdlets.Billing.dll-Help.xml Module Name: Az.Billing online version: https://docs.microsoft.com/powershell/module/az.billing/get-azbillinginvoice diff --git a/src/Billing/Consumption.Test/ScenarioTests/BillingTestRunner.cs b/src/Billing/Consumption.Test/ScenarioTests/BillingTestRunner.cs new file mode 100644 index 000000000000..887e8c781149 --- /dev/null +++ b/src/Billing/Consumption.Test/ScenarioTests/BillingTestRunner.cs @@ -0,0 +1,55 @@ +// ---------------------------------------------------------------------------------- +// +// 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.Commands.TestFx; +using Xunit.Abstractions; + +namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests.ScenarioTest +{ + public class BillingTestRunner + { + protected readonly ITestRunner TestRunner; + + protected BillingTestRunner(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.Billing.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(); + } + } +} diff --git a/src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs b/src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs index 8359ef85b832..79ef316455b3 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs @@ -13,44 +13,36 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Consumption.Test.ScenarioTests.ScenarioTest; -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; namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class BudgetTests : RMTestBase + public class BudgetTests : BillingTestRunner { - public XunitTracingInterceptor _logger; - - public BudgetTests(Xunit.Abstractions.ITestOutputHelper output) + public BudgetTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestBudgetAtSubscriptionLevel() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-BudgetAtSubscriptionLevel"); + TestRunner.RunTestScript("Test-BudgetAtSubscriptionLevel"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestBudgetAtResourceGroupLevel() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-BudgetAtResourceGroupLevel"); + TestRunner.RunTestScript("Test-BudgetAtResourceGroupLevel"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestGetBudgets() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-GetBudgets"); + TestRunner.RunTestScript("Test-GetBudgets"); } } } diff --git a/src/Billing/Consumption.Test/ScenarioTests/MarketplaceTests.cs b/src/Billing/Consumption.Test/ScenarioTests/MarketplaceTests.cs index 7b1e300df264..9f75bd1a36f7 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/MarketplaceTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/MarketplaceTests.cs @@ -13,51 +13,43 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Consumption.Test.ScenarioTests.ScenarioTest; -using Microsoft.Azure.ServiceManagement.Common.Models; -using Microsoft.Azure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Xunit; namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class MarketplaceTests : RMTestBase + public class MarketplaceTests : BillingTestRunner { - public XunitTracingInterceptor _logger; - - public MarketplaceTests(Xunit.Abstractions.ITestOutputHelper output) + public MarketplaceTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListMarketplaces() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListMarketplaces"); + TestRunner.RunTestScript("Test-ListMarketplaces"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListMarketplacesWithDateFilter() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListMarketplacesWithDateFilter"); + TestRunner.RunTestScript("Test-ListMarketplacesWithDateFilter"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingPeriodMarketplaces() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingPeriodMarketplaces"); + TestRunner.RunTestScript("Test-ListBillingPeriodMarketplaces"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListMarketplacesWithFilterOnInstanceName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListMarketplacesWithFilterOnInstanceName"); + TestRunner.RunTestScript("Test-ListMarketplacesWithFilterOnInstanceName"); } } } diff --git a/src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs b/src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs index 81272dd36a9a..04e5878da3d8 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs @@ -13,45 +13,36 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Consumption.Test.ScenarioTests.ScenarioTest; -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 Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class PriceSheetTests : RMTestBase + public class PriceSheetTests : BillingTestRunner { - public XunitTracingInterceptor _logger; - - public PriceSheetTests(Xunit.Abstractions.ITestOutputHelper output) + public PriceSheetTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListPriceSheets() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListPriceSheets"); + TestRunner.RunTestScript("Test-ListPriceSheets"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListPriceSheetsWithMeterDetailsExpand() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListPriceSheetsWithMeterDetailsExpand"); + TestRunner.RunTestScript("Test-ListPriceSheetsWithMeterDetailsExpand"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingPeriodPriceSheets() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingPeriodPriceSheets"); + TestRunner.RunTestScript("Test-ListBillingPeriodPriceSheets"); } } } diff --git a/src/Billing/Consumption.Test/ScenarioTests/ReservationTests.cs b/src/Billing/Consumption.Test/ScenarioTests/ReservationTests.cs index 5a97bb627634..5431214f9eeb 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/ReservationTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/ReservationTests.cs @@ -13,66 +13,57 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Consumption.Test.ScenarioTests.ScenarioTest; -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 Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class ReservationTests : RMTestBase + public class ReservationTests : BillingTestRunner { - public XunitTracingInterceptor _logger; - - public ReservationTests(Xunit.Abstractions.ITestOutputHelper output) + public ReservationTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListReservationSummariesMonthlyWithOrderId() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListReservationSummariesMonthlyWithOrderId"); + TestRunner.RunTestScript("Test-ListReservationSummariesMonthlyWithOrderId"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListReservationSummariesMonthlyWithOrderIdAndId() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListReservationSummariesMonthlyWithOrderIdAndId"); + TestRunner.RunTestScript("Test-ListReservationSummariesMonthlyWithOrderIdAndId"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListReservationSummariesDailyWithOrderId() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListReservationSummariesDailyWithOrderId"); + TestRunner.RunTestScript("Test-ListReservationSummariesDailyWithOrderId"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListReservationSummariesDailyWithOrderIdAndId() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListReservationSummariesDailyWithOrderIdAndId"); + TestRunner.RunTestScript("Test-ListReservationSummariesDailyWithOrderIdAndId"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListReservationDetailsWithOrderId() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListReservationDetailsWithOrderId"); + TestRunner.RunTestScript("Test-ListReservationDetailsWithOrderId"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListReservationDetailsWithOrderIdAndId() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListReservationDetailsWithOrderIdAndId"); + TestRunner.RunTestScript("Test-ListReservationDetailsWithOrderIdAndId"); } } } diff --git a/src/Billing/Consumption.Test/ScenarioTests/TestController.cs b/src/Billing/Consumption.Test/ScenarioTests/TestController.cs deleted file mode 100644 index 7cce0a53ed31..000000000000 --- a/src/Billing/Consumption.Test/ScenarioTests/TestController.cs +++ /dev/null @@ -1,130 +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.Consumption; -using Microsoft.Azure.Management.Internal.Resources; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using Microsoft.Azure.ServiceManagement.Common.Models; - -namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests.ScenarioTest -{ - public class TestController : RMTestBase - { - private readonly EnvironmentSetupHelper _helper; - - public ResourceManagementClient ResourceClient { get; private set; } - - public ConsumptionManagementClient ConsumptionManagementClient { get; private set; } - - public static TestController NewInstance => new TestController(); - - protected TestController() - { - _helper = new EnvironmentSetupHelper(); - } - - protected void SetupManagementClients(MockContext context) - { - ResourceClient = GetResourceClient(context); - ConsumptionManagementClient = GetConsumptionManagementClient(context); - - _helper.SetupManagementClients( - ResourceClient, - ConsumptionManagementClient); - } - - public void RunPowerShellTest(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); - } - - public void RunPsTestWorkflow( - Func scriptBuilder, - Action cleanup, - string callingClassType, - string mockName) - { - var providers = 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, providers, providersToIgnore); - - HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); - - using (var context = MockContext.Start(callingClassType, mockName)) - { - SetupManagementClients(context); - - _helper.SetupEnvironment(AzureModule.AzureResourceManager); - - var callingClassName = callingClassType.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries).Last(); - _helper.SetupModules(AzureModule.AzureResourceManager, - _helper.RMProfileModule, - _helper.GetRMModulePath("AzureRM.Billing.psd1"), - "ScenarioTests\\" + callingClassName + ".ps1", - "AzureRM.Resources.ps1"); - try - { - var psScripts = scriptBuilder?.Invoke(); - if (psScripts != null) - { - _helper.RunPowerShellTest(psScripts); - } - } - finally - { - cleanup?.Invoke(); - } - } - } - - private static ResourceManagementClient GetResourceClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - - private static ConsumptionManagementClient GetConsumptionManagementClient(MockContext context) - { - return context.GetServiceClient(TestEnvironmentFactory.GetTestEnvironment()); - } - } -} diff --git a/src/Billing/Consumption.Test/ScenarioTests/UsageDetailsTests.cs b/src/Billing/Consumption.Test/ScenarioTests/UsageDetailsTests.cs index 962e107c658c..d2e47db80b1d 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/UsageDetailsTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/UsageDetailsTests.cs @@ -13,66 +13,57 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Consumption.Test.ScenarioTests.ScenarioTest; -using Microsoft.Azure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Xunit.Abstractions; -using Microsoft.Azure.ServiceManagement.Common.Models; namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class UsageDetailsTests : RMTestBase + public class UsageDetailsTests : BillingTestRunner { - public XunitTracingInterceptor _logger; - - public UsageDetailsTests(Xunit.Abstractions.ITestOutputHelper output) + public UsageDetailsTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { - _logger = new XunitTracingInterceptor(output); - XunitTracingInterceptor.AddToContext(_logger); - TestExecutionHelpers.SetUpSessionAndProfile(); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListUsageDetails() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListUsageDetails"); + TestRunner.RunTestScript("Test-ListUsageDetails"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListUsageDetailsWithMeterDetailsExpand() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListUsageDetailsWithMeterDetailsExpand"); + TestRunner.RunTestScript("Test-ListUsageDetailsWithMeterDetailsExpand"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListUsageDetailsWithDateFilter() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListUsageDetailsWithDateFilter"); + TestRunner.RunTestScript("Test-ListUsageDetailsWithDateFilter"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingPeriodUsageDetails() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingPeriodUsageDetails"); + TestRunner.RunTestScript("Test-ListBillingPeriodUsageDetails"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingPeriodUsageDetailsWithFilterOnInstanceName() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingPeriodUsageDetailsWithFilterOnInstanceName"); + TestRunner.RunTestScript("Test-ListBillingPeriodUsageDetailsWithFilterOnInstanceName"); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestListBillingPeriodUsageDetailsWithDateFilter() { - TestController.NewInstance.RunPowerShellTest(_logger, "Test-ListBillingPeriodUsageDetailsWithDateFilter"); + TestRunner.RunTestScript("Test-ListBillingPeriodUsageDetailsWithDateFilter"); } } diff --git a/src/Billing/UsageAggregates.Test/Common/UsageAggregatesTestController.cs b/src/Billing/UsageAggregates.Test/ScenarioTests/UsageAggregatesTestController.cs similarity index 96% rename from src/Billing/UsageAggregates.Test/Common/UsageAggregatesTestController.cs rename to src/Billing/UsageAggregates.Test/ScenarioTests/UsageAggregatesTestController.cs index 1c98db348999..9af1f3f28730 100644 --- a/src/Billing/UsageAggregates.Test/Common/UsageAggregatesTestController.cs +++ b/src/Billing/UsageAggregates.Test/ScenarioTests/UsageAggregatesTestController.cs @@ -24,6 +24,7 @@ namespace Microsoft.Azure.Commands.UsageAggregates.Test.ScenarioTests { + // This TestController class called EnvironmentSetupHelper.SetupSomeOfManagementClients() method. public sealed class UsageAggregatesTestController { private readonly EnvironmentSetupHelper _helper; From 44f6ce3ca989b293a223f117c4cba5bc164a178b Mon Sep 17 00:00:00 2001 From: Ziyue Zheng Date: Wed, 11 May 2022 10:15:52 +0800 Subject: [PATCH 2/2] Add BillingTestRunner to replace TestController --- src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs | 2 +- .../{BillingTestRunner.cs => ConsumptionTestRunner.cs} | 4 ++-- .../Consumption.Test/ScenarioTests/MarketplaceTests.cs | 2 +- src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs | 2 +- .../Consumption.Test/ScenarioTests/ReservationTests.cs | 2 +- .../Consumption.Test/ScenarioTests/UsageDetailsTests.cs | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) rename src/Billing/Consumption.Test/ScenarioTests/{BillingTestRunner.cs => ConsumptionTestRunner.cs} (95%) diff --git a/src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs b/src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs index 79ef316455b3..360ca4934d13 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/BudgetTests.cs @@ -18,7 +18,7 @@ namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class BudgetTests : BillingTestRunner + public class BudgetTests : ConsumptionTestRunner { public BudgetTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { diff --git a/src/Billing/Consumption.Test/ScenarioTests/BillingTestRunner.cs b/src/Billing/Consumption.Test/ScenarioTests/ConsumptionTestRunner.cs similarity index 95% rename from src/Billing/Consumption.Test/ScenarioTests/BillingTestRunner.cs rename to src/Billing/Consumption.Test/ScenarioTests/ConsumptionTestRunner.cs index 887e8c781149..e43fe2a07117 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/BillingTestRunner.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/ConsumptionTestRunner.cs @@ -18,11 +18,11 @@ namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests.ScenarioTest { - public class BillingTestRunner + public class ConsumptionTestRunner { protected readonly ITestRunner TestRunner; - protected BillingTestRunner(ITestOutputHelper output) + protected ConsumptionTestRunner(ITestOutputHelper output) { TestRunner = TestManager.CreateInstance(output) .WithNewPsScriptFilename($"{GetType().Name}.ps1") diff --git a/src/Billing/Consumption.Test/ScenarioTests/MarketplaceTests.cs b/src/Billing/Consumption.Test/ScenarioTests/MarketplaceTests.cs index 9f75bd1a36f7..1c7fab6c3717 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/MarketplaceTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/MarketplaceTests.cs @@ -18,7 +18,7 @@ namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class MarketplaceTests : BillingTestRunner + public class MarketplaceTests : ConsumptionTestRunner { public MarketplaceTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { diff --git a/src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs b/src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs index 04e5878da3d8..6cd78184d475 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/PriceSheetTests.cs @@ -18,7 +18,7 @@ namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class PriceSheetTests : BillingTestRunner + public class PriceSheetTests : ConsumptionTestRunner { public PriceSheetTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { diff --git a/src/Billing/Consumption.Test/ScenarioTests/ReservationTests.cs b/src/Billing/Consumption.Test/ScenarioTests/ReservationTests.cs index 5431214f9eeb..047fc0eb6fd9 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/ReservationTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/ReservationTests.cs @@ -18,7 +18,7 @@ namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class ReservationTests : BillingTestRunner + public class ReservationTests : ConsumptionTestRunner { public ReservationTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) { diff --git a/src/Billing/Consumption.Test/ScenarioTests/UsageDetailsTests.cs b/src/Billing/Consumption.Test/ScenarioTests/UsageDetailsTests.cs index d2e47db80b1d..f176b176b325 100644 --- a/src/Billing/Consumption.Test/ScenarioTests/UsageDetailsTests.cs +++ b/src/Billing/Consumption.Test/ScenarioTests/UsageDetailsTests.cs @@ -18,7 +18,7 @@ namespace Microsoft.Azure.Commands.Consumption.Test.ScenarioTests { - public class UsageDetailsTests : BillingTestRunner + public class UsageDetailsTests : ConsumptionTestRunner { public UsageDetailsTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) {