Skip to content

Fix, update, and add tests for ResourceManager SQL Failover Group cmdlets #3826

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
May 2, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion src/ResourceManager/Sql/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,17 @@
- Additional information about change #1
-->
## Current Release
* Added -SampleName parameter to New-AzureRmSqlDatabase
* Added -SampleName parameter to New-AzureRmSqlDatabase
* Updates to Failover Group cmdlets
- Remove 'Tag' parameters
- Remove 'PartnerResourceGroupName' and 'PartnerServerName' parameters from Remove-AzureRmSqlDatabaseFailoverGroup cmdlet
- Add 'GracePeriodWithDataLossHours' parameter to New- and Set- cmdlets, which shall eventually replace 'GracePeriodWithDataLossHour'
- Documentation has been fleshed out and updated
- Change formatting of returned objects and fix some bugs where fields were not always populated
- Add 'DatabaseNames' and 'PartnerLocation' properties to Failover Group object
- Fix bug causing Switch- cmdlet to return immediately rather than waiting for operation to complete
- Fix integer overflow bug when high grace period values are used
- Adjust grace period to a minimum of 1 hour if a lower one is provided

## Version 2.8.0
* Bug fixes on Azure Failover Group Cmdlets
Expand Down
57 changes: 57 additions & 0 deletions src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -639,6 +639,63 @@
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.ElasticPoolCrudTests\TestElasticPoolUpdate.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_AutomaticPolicy.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_AutomaticPolicyGracePeriodReadOnlyFailover.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_ManualPolicy.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_Named.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_Overflow.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_Positional.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_ZeroGracePeriod.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestFailoverGroup.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_AutomaticToManual.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_AutomaticWithGracePeriodReadOnlyFailover.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_AutomaticWithGracePeriodZero.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_ManualToAutomaticNoGracePeriod.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_Named.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_Overflow.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_PipeServer.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_Positional.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSwitchFailoverGroup.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSwitchFailoverGroupAllowDataLoss.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\Test_AddRemoveDatabasesToFromFailoverGroup.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.IndexRecommendationTests\TestCreateIndex.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,15 @@ function Get-ElasticPoolName
return getAssetName
}

<#
.SYNOPSIS
Gets valid failover group name
#>
function Get-FailoverGroupName
{
return getAssetName
}

<#
.SYNOPSIS
Gets the location for a provider, if not found return East US
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,137 @@ public FailoverGroupTests(ITestOutputHelper output)
XunitTracingInterceptor.AddToContext(new XunitTracingInterceptor(output));
}

// Currently the test runs too long to be marked as a check-in test.
[Fact(Skip = "Hydra TestFramework Issue, cannot login to authenticate in order to record the tests")]
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestFailoverGroup()
{
RunPowerShellTest("Test-FailoverGroup");
}

[Fact]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dlemMSFT you will need to add the CheckIn trait to each test for them to be run during the build. For example:

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateFailoverGroup_Named()
{
    RunPowerShellTest("Test-CreateFailoverGroup-Named");
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateFailoverGroup_Named()
{
RunPowerShellTest("Test-CreateFailoverGroup-Named");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateFailoverGroup_Positional()
{
RunPowerShellTest("Test-CreateFailoverGroup-Positional");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateFailoverGroup_AutomaticPolicy()
{
RunPowerShellTest("Test-CreateFailoverGroup-AutomaticPolicy");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateFailoverGroup_AutomaticPolicyGracePeriodReadOnlyFailover()
{
RunPowerShellTest("Test-CreateFailoverGroup-AutomaticPolicyGracePeriodReadOnlyFailover");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateFailoverGroup_ZeroGracePeriod()
{
RunPowerShellTest("Test-CreateFailoverGroup-ZeroGracePeriod");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateFailoverGroup_ManualPolicy()
{
RunPowerShellTest("Test-CreateFailoverGroup-ManualPolicy");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateFailoverGroup_Overflow()
{
RunPowerShellTest("Test-CreateFailoverGroup-Overflow");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetFailoverGroup_Named()
{
RunPowerShellTest("Test-SetFailoverGroup-Named");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetFailoverGroup_Positional()
{
RunPowerShellTest("Test-SetFailoverGroup-Positional");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetFailoverGroup_PipeServer()
{
RunPowerShellTest("Test-SetFailoverGroup-PipeServer");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetFailoverGroup_AutomaticWithGracePeriodReadOnlyFailover()
{
RunPowerShellTest("Test-SetFailoverGroup-AutomaticWithGracePeriodReadOnlyFailover");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetFailoverGroup_AutomaticWithGracePeriodZero()
{
RunPowerShellTest("Test-SetFailoverGroup-AutomaticWithGracePeriodZero");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetFailoverGroup_AutomaticToManual()
{
RunPowerShellTest("Test-SetFailoverGroup-AutomaticToManual");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetFailoverGroup_ManualToAutomaticNoGracePeriod()
{
RunPowerShellTest("Test-SetFailoverGroup-ManualToAutomaticNoGracePeriod");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetFailoverGroup_Overflow()
{
RunPowerShellTest("Test-SetFailoverGroup-Overflow");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void Test_AddRemoveDatabasesToFromFailoverGroup()
{
RunPowerShellTest("Test-AddRemoveDatabasesToFromFailoverGroup");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSwitchFailoverGroup()
{
RunPowerShellTest("Test-SwitchFailoverGroup");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSwitchFailoverGroupAllowDataLoss()
{
RunPowerShellTest("Test-SwitchFailoverGroupAllowDataLoss");
}
}
}
Loading