diff --git a/src/Automation/Automation.Test/LiveTests/TestLiveScenarios.ps1 b/src/Automation/Automation.Test/LiveTests/TestLiveScenarios.ps1 new file mode 100644 index 000000000000..25a12fbcaaf9 --- /dev/null +++ b/src/Automation/Automation.Test/LiveTests/TestLiveScenarios.ps1 @@ -0,0 +1,64 @@ +Invoke-LiveTestScenario -Name "Create automation account" -Description "Test creating automation account with different sku" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $autoAccParams = @( + @{ + Name = New-LiveTestResourceName; + Location = "westus"; + Plan = "Free" + }, + @{ + Name = New-LiveTestResourceName; + Location = "eastus"; + Plan = "Basic" + } + ) + + $autoAccParams | ForEach-Object { + New-AzAutomationAccount -ResourceGroupName $rgName -Name $_.Name -Location $_.Location -Plan $_.Plan + + $actual = Get-AzAutomationAccount -ResourceGroupName $rgName -Name $_.Name + Assert-NotNull $actual + Assert-AreEqual $rgName $actual.ResourceGroupName + Assert-AreEqual $_.Name $actual.AutomationAccountName + Assert-AreEqual $_.Location $actual.Location + #Assert-AreEqual $_.Plan $actual.Plan + Assert-AreEqual "Ok" $actual.State + } +} + +Invoke-LiveTestScenario -Name "Update automation account" -Description "Test updating an existing automation account" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $accName = New-LiveTestResourceName + $accLocation = "centralus" + + New-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -Location $accLocation + Set-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -AssignSystemIdentity -DisablePublicNetworkAccess -Tags @{ "key" = "val" } + + $actual = Get-AzAutomationAccount -ResourceGroupName $rgName -Name $accName + Assert-NotNull $actual + Assert-AreEqual $rgName $actual.ResourceGroupName + Assert-AreEqual $accName $actual.AutomationAccountName + Assert-AreEqual $accLocation $actual.Location + Assert-AreEqual "Ok" $actual.State +} + +Invoke-LiveTestScenario -Name "Remove automation account" -Description "Test removing an automation account" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $accName = New-LiveTestResourceName + $accLocation = "eastus" + + New-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -Location $accLocation + Remove-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -Force + + $actual = Get-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -ErrorAction SilentlyContinue + Assert-Null $actual +} diff --git a/src/Databricks/LiveTests/TestLiveScenarios.ps1 b/src/Databricks/LiveTests/TestLiveScenarios.ps1 new file mode 100644 index 000000000000..7b41de7ce3b9 --- /dev/null +++ b/src/Databricks/LiveTests/TestLiveScenarios.ps1 @@ -0,0 +1,52 @@ +Invoke-LiveTestScenario -Name "Create access connector for databricks" -Description "Test creating access connector for data bricks" -ResourceGroupLocation "eastus" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $connName = New-LiveTestResourceName + $location = "eastus" + + New-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName -Location $location + + $actual = Get-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName + Assert-NotNull $actual + Assert-AreEqual $rgName $actual.ResourceGroupName + Assert-AreEqual $connName $actual.Name + Assert-AreEqual $location $actual.Location + Assert-AreEqual "Succeeded" $actual.ProvisioningState +} + +Invoke-LiveTestScenario -Name "Update access connector for databricks" -Description "Test updating an existing access connector for data bricks" -ResourceGroupLocation "eastus" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $connName = New-LiveTestResourceName + $location = "eastus" + + $connector = New-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName -Location $location + $connector | Update-AzDatabricksAccessConnector -Tag @{ "key" = "value" } + + $actual = Get-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName + Assert-NotNull $actual + Assert-AreEqual $rgName $actual.ResourceGroupName + Assert-AreEqual $connName $actual.Name + Assert-AreEqual $location $actual.Location + Assert-AreEqual "Succeeded" $actual.ProvisioningState + Assert-AreEqual 1 $actual.Tag.Count +} + +Invoke-LiveTestScenario -Name "Remove access connector for data bricks" -Description "Test removing access connector for data bricks" -ResourceGroupLocation "eastus" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $connName = New-LiveTestResourceName + $location = "eastus" + + New-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName -Location $location + Remove-AzDatabricksAccessConnector -ResourceGroupName $rgName -name $connName + + $actual = Get-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName -ErrorAction SilentlyContinue + Assert-Null $actual +} diff --git a/src/Functions/LiveTests/TestLiveScenarios.ps1 b/src/Functions/LiveTests/TestLiveScenarios.ps1 new file mode 100644 index 000000000000..3e20e999a91c --- /dev/null +++ b/src/Functions/LiveTests/TestLiveScenarios.ps1 @@ -0,0 +1,88 @@ +Invoke-LiveTestScenario -Name "Create function app" -Description "Test creating function app" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $saName = New-LiveTestStorageAccountName + $funcAppName = New-LiveTestResourceName + $location = "westus" + + New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS + New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.2 + + $actual = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName + Assert-NotNull $actual + Assert-AreEqual $rgName $actual.ResourceGroupName + Assert-AreEqual $funcAppName $actual.Name + Assert-AreEqual "Running" $actual.State + Assert-AreEqual "Windows" $actual.OSType + Assert-AreEqual "PowerShell" $actual.Runtime +} + +Invoke-LiveTestScenario -Name "Update function app" -Description "Test updating an existing function app" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $saName = New-LiveTestStorageAccountName + $funcAppName = New-LiveTestResourceName + $location = "eastus" + + New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS + $funcApp = New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.2 + $funcApp | Update-AzFunctionApp -Tag @{ "key" = "value" } -Force + Update-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -IdentityType SystemAssigned -Force + + $actual = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName + Assert-NotNull $actual + Assert-AreEqual $rgName $actual.ResourceGroupName + Assert-AreEqual $funcAppName $actual.Name + Assert-AreEqual "Running" $actual.State + Assert-AreEqual "SystemAssigned" $actual.IdentityType + Assert-AreEqual 1 $actual.Tag.Count +} + +Invoke-LiveTestScenario -Name "Remove function app" -Description "Test removing function app" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $saName = New-LiveTestStorageAccountName + $funcAppName = New-LiveTestResourceName + $location = "centralus" + + New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS + New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.2 + Remove-AzFunctionApp -ResourceGroupName $rgName -name $funcAppName -Force + + $actual = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -ErrorAction SilentlyContinue + Assert-Null $actual +} + +Invoke-LiveTestScenario -Name "Operate function app" -Description "Test operating function app by starting, stopping and restarting it" -ResourceGroupLocation "eastus" -ScenarioScript ` +{ + param ($rg) + + $rgName = $rg.ResourceGroupName + $saName = New-LiveTestStorageAccountName + $funcAppName = New-LiveTestResourceName + $location = "eastus" + + New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS + New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.2 + + Stop-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Force + $app = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName + Assert-NotNull $app + Assert-AreEqual "Stopped" $app.State + + $app | Start-AzFunctionApp + $app = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName + Assert-NotNull $app + Assert-AreEqual "Running" $app.State + + Restart-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Force + $app = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName + Assert-NotNull $app + Assert-AreEqual "Running" $app.State +} diff --git a/tools/TestFx/Live/LiveTestUtility.psm1 b/tools/TestFx/Live/LiveTestUtility.psm1 index c7e48ec3dd50..7033db422e6b 100644 --- a/tools/TestFx/Live/LiveTestUtility.psm1 +++ b/tools/TestFx/Live/LiveTestUtility.psm1 @@ -275,7 +275,13 @@ function Invoke-LiveTestScenario { do { try { - $ScenarioScript.InvokeWithContext($null, @([psvariable]::new("ErrorActionPreference", "Stop"), [psvariable]::new("ConfirmPreference", "None")), $snrResourceGroup) + if ($snrRetryCount -eq $script:ScenarioMaxRetryCount) { + $ScenarioScript.InvokeWithContext($null, @([psvariable]::new("ErrorActionPreference", "Stop"), [psvariable]::new("ConfirmPreference", "None"), [psvariable]::new("DebugPreference", "Continue")), $snrResourceGroup) + } + else { + $ScenarioScript.InvokeWithContext($null, @([psvariable]::new("ErrorActionPreference", "Stop"), [psvariable]::new("ConfirmPreference", "None")), $snrResourceGroup) + } + Write-Host "##[section]Successfully executed the live scenario `"$Name`"." -ForegroundColor Green break } @@ -285,6 +291,19 @@ function Invoke-LiveTestScenario { $snrErrorDetails = $snrErrorMessage $snrInvocationInfo = $snrErrorRecord.InvocationInfo + + Write-Host "##[error]Error Object:" -ForegroundColor Red + $_ | Format-List * -Force + + Write-Host "##[error]Exception Object:" -ForegroundColor Red + $_.Exception.InnerException | Format-List * -Force + + Write-Host "##[error]Error Record:" -ForegroundColor Red + $snrErrorRecord | Format-List * -Force + + Write-Host "##[error]Invocation Info:" -ForegroundColor Red + $snrInvocationInfo | Format-List * -Force + if ($null -ne $snrInvocationInfo) { $snrScriptName = Split-Path -Path $snrInvocationInfo.ScriptName -Leaf -ErrorAction SilentlyContinue if ($snrScriptName -eq "Assert.ps1") {