Skip to content
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

Bug 28957665: Fixed psObject List Enumeration (#25781) #25857

Merged
merged 1 commit into from
Aug 19, 2024
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
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,13 @@ public void TestMaintenanceUpdate()
TestRunner.RunTestScript("Test-AzMaintenanceUpdate");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetAzMaintenanceConfiguration()
{
TestRunner.RunTestScript("Test-GetAzMaintenanceConfiguration");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestPublicMaintenanceConfiguration()
Expand Down
102 changes: 102 additions & 0 deletions src/Maintenance/Maintenance.Test/ScenarioTests/MaintenanceTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,108 @@
# limitations under the License.
# ----------------------------------------------------------------------------------

<#
.SYNOPSIS
Test New-AzMaintenanceConfiguration, Get-AzMaintenanceConfiguration, Remove-AzMaintenanceConfiguration
#>
function Test-GetAzMaintenanceConfiguration
{
$resourceGroups = @()
$maintenanceConfigurations = @()
$numConfigsToTest = 2
$maintenanceConfigurationName = Get-RandomMaintenanceConfigurationName
$location = "eastus2euap"
$maintenanceScope = "Host"
$visibility = "Custom"
$startDateTime = "2024-08-05 12:30"
$timezone = "Pacific Standard Time"
$recurEvery = "Day"
$duration = "05:00"
$expirationDateTime = "9999-12-31 23:59"

try
{

# Create and validate maintenance configurations in a loop
for ($i = 1; $i -le $numConfigsToTest; $i++) {
$resourceGroupName = Get-RandomResourceGroupName
$resourceGroups += $resourceGroupName

# Create Resource Group
New-AzResourceGroup -Name $resourceGroupName -Location $location
Write-Host "Created Resource Group $resourceGroupName in $location"

# Create Maintenance Configuration
$maintenanceConfiguration = New-AzMaintenanceConfiguration -ResourceGroupName $resourceGroupName -Name $maintenanceConfigurationName -MaintenanceScope $maintenanceScope -Location $location -Visibility $visibility -StartDateTime $startDateTime -Timezone $timezone -RecurEvery $recurEvery -Duration $duration -ExpirationDateTime $expirationDateTime
Write-Host "Created Maintenance Configuration $maintenanceConfigurationName in $resourceGroupName"

# Store the configuration for further validation
$maintenanceConfigurations += $maintenanceConfiguration

# Validate Maintenance Configuration
Assert-AreEqual $maintenanceConfiguration.Name $maintenanceConfigurationName
Assert-AreEqual $maintenanceConfiguration.Location $location
Assert-AreEqual $maintenanceConfiguration.MaintenanceScope $maintenanceScope
Assert-AreEqual $maintenanceConfiguration.Visibility $visibility
Assert-AreEqual $maintenanceConfiguration.StartDateTime $startDateTime
Assert-AreEqual $maintenanceConfiguration.Timezone $timezone
Assert-AreEqual $maintenanceConfiguration.RecurEvery $recurEvery
Assert-AreEqual $maintenanceConfiguration.Duration $duration
Assert-AreEqual $maintenanceConfiguration.ExpirationDateTime $expirationDateTime

# Retrieve and Validate Maintenance Configuration with ResourceGroupName
$retrievedMaintenanceConfiguration = Get-AzMaintenanceConfiguration -ResourceGroupName $resourceGroupName -Name $maintenanceConfigurationName
Assert-AreEqual $retrievedMaintenanceConfiguration.Name $maintenanceConfigurationName
Assert-AreEqual $retrievedMaintenanceConfiguration.Location $location
Assert-AreEqual $retrievedMaintenanceConfiguration.MaintenanceScope $maintenanceScope
Assert-AreEqual $retrievedMaintenanceConfiguration.Visibility $visibility
Assert-AreEqual $retrievedMaintenanceConfiguration.StartDateTime $startDateTime
Assert-AreEqual $retrievedMaintenanceConfiguration.Timezone $timezone
Assert-AreEqual $retrievedMaintenanceConfiguration.RecurEvery $recurEvery
Assert-AreEqual $retrievedMaintenanceConfiguration.Duration $duration
Assert-AreEqual $retrievedMaintenanceConfiguration.ExpirationDateTime $expirationDateTime
}

# Retrieve Maintenance Configurations without ResourceGroupName and validate it returns a list
$retrievedConfigurations = Get-AzMaintenanceConfiguration -Name $maintenanceConfigurationName

# Validate that the returned object is a list containing two objects
if ($retrievedConfigurations.Count -ne $numConfigsToTest) {
throw "Expected $numConfigsToTest maintenance configurations, but found $($retrievedConfigurations.Count)."
} else {
Write-Host "Retrieved $($retrievedConfigurations.Count) maintenance configurations."
}

# Update the configurations & Testing 2 sifferent input styles
for ($i = 0; $i -lt $retrievedConfigurations.Count; $i++) {
try {
Update-AzMaintenanceConfiguration -ResourceGroupName $resourceGroups[$i] -Name $maintenanceConfigurationName -Configuration $retrievedConfigurations[$i]
$retrievedConfigurations[$i] | Update-AzMaintenanceConfiguration -ResourceGroupName $resourceGroups[$i] -Name $maintenanceConfigurationName
}
catch {
throw "Caught Exception while updating maintenance configuration in $resourceGroups[$i]."
}
}

}
finally
{
# Cleanup in a loop
foreach ($resourceGroupName in $resourceGroups) {
try {
Remove-AzMaintenanceConfiguration -ResourceGroupName $resourceGroupName -Name $maintenanceConfigurationName -Force
Remove-AzResourceGroup -Name $resourceGroupName -Force
Write-Host "Cleaned up Resource Group $resourceGroupName and Maintenance Configuration $maintenanceConfigurationName"
}
catch {
throw "Caught Exception while deleting resourceGroup in $resourceGroupName."
}

}
}
}


<#
.SYNOPSIS
Test New-AzMaintenanceConfiguration, Get-AzMaintenanceConfiguration, Remove-AzMaintenanceConfiguration
Expand Down
Loading