Skip to content

Commit 0450ca1

Browse files
authored
Added live test cases for Network and DNS (#20988)
1 parent e66c451 commit 0450ca1

File tree

4 files changed

+278
-8
lines changed

4 files changed

+278
-8
lines changed

.azure-pipelines/util/live-test-steps.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ parameters:
66

77
jobs:
88
- job: ${{ parameters.name }}
9-
timeoutInMinutes: 180
9+
timeoutInMinutes: 360
1010
pool:
1111
vmImage: ${{ parameters.vmImage }}
1212

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
Invoke-LiveTestScenario -Name "Create public DNS zone" -Description "Test creating a public DNS zone" -ScenarioScript `
2+
{
3+
param ($rg)
4+
5+
$rgName = $rg.ResourceGroupName
6+
$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
7+
$zoneName = "$r5l.public.contoso.com"
8+
9+
New-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -ZoneType Public
10+
11+
$actual = Get-AzDnsZone -ResourceGroupName $rgName -Name $zoneName
12+
Assert-NotNull $actual
13+
Assert-AreEqual $rgName $actual.ResourceGroupName
14+
Assert-AreEqual $zoneName $actual.Name
15+
Assert-AreEqual "Public" $actual.ZoneType
16+
}
17+
18+
Invoke-LiveTestScenario -Name "Update DNS zone" -Description "Test updating an existing public DNS zone" -ScenarioScript `
19+
{
20+
param ($rg)
21+
22+
$rgName = $rg.ResourceGroupName
23+
$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
24+
$zoneName = "$r5l.public.contoso.com"
25+
26+
New-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -ZoneType Public
27+
Set-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -Tag @{ "Severity" = "Medium" }
28+
29+
$actual = Get-AzDnsZone -ResourceGroupName $rgName -Name $zoneName
30+
Assert-NotNull $actual
31+
Assert-AreEqual $rgName $actual.ResourceGroupName
32+
Assert-AreEqual $zoneName $actual.Name
33+
Assert-AreEqual "Public" $actual.ZoneType
34+
Assert-AreEqual 1 $actual.Tags.Keys.Count
35+
Assert-AreEqual "Severity" $actual.Tags.Keys[0]
36+
Assert-AreEqual 1 $actual.Tags.Values.Count
37+
Assert-AreEqual "Medium" $actual.Tags.Values[0]
38+
39+
$actual.Tags = @{ "Impact" = "Low" }
40+
Set-AzDnsZone -Zone $actual
41+
42+
$actual = Get-AzDnsZone -ResourceGroupName $rgName -Name $zoneName
43+
Assert-NotNull $actual
44+
Assert-AreEqual $rgName $actual.ResourceGroupName
45+
Assert-AreEqual $zoneName $actual.Name
46+
Assert-AreEqual "Public" $actual.ZoneType
47+
Assert-AreEqual 1 $actual.Tags.Keys.Count
48+
Assert-AreEqual "Impact" $actual.Tags.Keys[0]
49+
Assert-AreEqual 1 $actual.Tags.Values.Count
50+
Assert-AreEqual "Low" $actual.Tags.Values[0]
51+
}
52+
53+
Invoke-LiveTestScenario -Name "Remove DNS zone" -Description "Test removing a public DNS zone" -ScenarioScript `
54+
{
55+
param ($rg)
56+
57+
$rgName = $rg.ResourceGroupName
58+
$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
59+
$zoneName = "$r5l.public.contoso.com"
60+
61+
New-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -ZoneType Public
62+
Remove-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -Confirm:$false
63+
64+
$actual = Get-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -ErrorAction SilentlyContinue
65+
Assert-Null $actual
66+
}

src/Network/Network.Test/LiveTests/TestLiveScenarios.ps1

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,3 +461,163 @@ Invoke-LiveTestScenario -Name "Remove virtual network" -Description "Test removi
461461
$actual = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -ErrorAction SilentlyContinue
462462
Assert-Null $actual
463463
}
464+
465+
Invoke-LiveTestScenario -Name "Create private DNS zone group" -Description "Test creating a private DNS zone group" -ScenarioScript `
466+
{
467+
param ($rg)
468+
469+
$rgName = $rg.ResourceGroupName
470+
$location = "westus"
471+
$feSnetName = New-LiveTestResourceName
472+
$beSnetName = New-LiveTestResourceName
473+
$oSnetName = New-LiveTestResourceName
474+
$vnetName = New-LiveTestResourceName
475+
$feIpCfgName = New-LiveTestResourceName
476+
$bePoolCfgName = New-LiveTestResourceName
477+
$lbName = New-LiveTestResourceName
478+
$plsIpCfgName = New-LiveTestResourceName
479+
$plsName = New-LiveTestResourceName
480+
$plsConnName = New-LiveTestResourceName
481+
$peName = New-LiveTestResourceName
482+
483+
$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
484+
$zoneName = "$r5l.private.contoso.com"
485+
$zoneCfgName = New-LiveTestResourceName
486+
$zoneGroupName = New-LiveTestResourceName
487+
488+
$feSnet = New-AzVirtualNetworkSubnetConfig -Name $feSnetName -AddressPrefix "10.0.1.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
489+
$beSnet = New-AzVirtualNetworkSubnetConfig -Name $beSnetName -AddressPrefix "10.0.2.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
490+
$oSnet = New-AzVirtualNetworkSubnetConfig -Name $oSnetName -AddressPrefix "10.0.3.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
491+
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $feSnet, $beSnet, $oSnet
492+
$feSnet = $vnet.Subnets | Where-Object Name -eq $feSnetName
493+
$oSnet = $vnet.Subnets | Where-Object Name -eq $oSnetName
494+
$feIpCfg = New-AzLoadBalancerFrontendIpConfig -Name $feIpCfgName -Subnet $feSnet -PrivateIpAddress "10.0.1.10"
495+
$bePoolCfg = New-AzLoadBalancerBackendAddressPoolConfig -Name $bePoolCfgName
496+
$lb = New-AzLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $location -FrontendIpConfiguration $feIpCfg -BackendAddressPool $bePoolCfg -Sku Standard
497+
$plsIpCfg = New-AzPrivateLinkServiceIpConfig -Name $plsIpCfgName -PrivateIpAddress "10.0.3.10" -Subnet $oSnet
498+
$feIpCfg = $lb | Get-AzLoadBalancerFrontendIpConfig
499+
$pls = New-AzPrivateLinkService -ResourceGroupName $rgName -Name $plsName -Location $location -IpConfiguration $plsIpCfg -LoadBalancerFrontendIpConfiguration $feIpCfg
500+
$plsConn = New-AzPrivateLinkServiceConnection -Name $plsConnName -PrivateLinkServiceId $pls.Id
501+
New-AzPrivateEndpoint -ResourceGroupName $rgName -Name $peName -Location $location -Subnet $feSnet -PrivateLinkServiceConnection $plsConn
502+
503+
New-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName
504+
$zone = Get-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName
505+
$zoneCfg = New-AzPrivateDnsZoneConfig -Name $zoneCfgName -PrivateDnsZoneId $zone.ResourceId
506+
New-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -PrivateDnsZoneConfig $zoneCfg
507+
508+
$actual = Get-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName
509+
Assert-NotNull $actual
510+
Assert-AreEqual $zoneGroupName $actual.Name
511+
Assert-AreEqual "Succeeded" $actual.ProvisioningState
512+
Assert-AreEqual 1 $actual.PrivateDnsZoneConfigs.Count
513+
Assert-AreEqual $zoneCfgName $actual.PrivateDnsZoneConfigs[0].Name
514+
Assert-AreEqual $zone.ResourceId $actual.PrivateDnsZoneConfigs[0].PrivateDnsZoneId
515+
}
516+
517+
Invoke-LiveTestScenario -Name "Update private DNS zone group" -Description "Test updating an existing private DNS zone group with different zone config" -ScenarioScript `
518+
{
519+
param ($rg)
520+
521+
$rgName = $rg.ResourceGroupName
522+
$location = "eastus"
523+
$feSnetName = New-LiveTestResourceName
524+
$beSnetName = New-LiveTestResourceName
525+
$oSnetName = New-LiveTestResourceName
526+
$vnetName = New-LiveTestResourceName
527+
$feIpCfgName = New-LiveTestResourceName
528+
$bePoolCfgName = New-LiveTestResourceName
529+
$lbName = New-LiveTestResourceName
530+
$plsIpCfgName = New-LiveTestResourceName
531+
$plsName = New-LiveTestResourceName
532+
$plsConnName = New-LiveTestResourceName
533+
$peName = New-LiveTestResourceName
534+
535+
$r5l1 = New-LiveTestRandomName -Option AllLetters -MaxLength 5
536+
$zoneName1 = "$r5l1.private.contoso.com"
537+
$zoneCfgName1 = New-LiveTestResourceName
538+
$zoneGroupName = New-LiveTestResourceName
539+
540+
$feSnet = New-AzVirtualNetworkSubnetConfig -Name $feSnetName -AddressPrefix "10.0.1.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
541+
$beSnet = New-AzVirtualNetworkSubnetConfig -Name $beSnetName -AddressPrefix "10.0.2.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
542+
$oSnet = New-AzVirtualNetworkSubnetConfig -Name $oSnetName -AddressPrefix "10.0.3.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
543+
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $feSnet, $beSnet, $oSnet
544+
$feSnet = $vnet.Subnets | Where-Object Name -eq $feSnetName
545+
$oSnet = $vnet.Subnets | Where-Object Name -eq $oSnetName
546+
$feIpCfg = New-AzLoadBalancerFrontendIpConfig -Name $feIpCfgName -Subnet $feSnet -PrivateIpAddress "10.0.1.10"
547+
$bePoolCfg = New-AzLoadBalancerBackendAddressPoolConfig -Name $bePoolCfgName
548+
$lb = New-AzLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $location -FrontendIpConfiguration $feIpCfg -BackendAddressPool $bePoolCfg -Sku Standard
549+
$plsIpCfg = New-AzPrivateLinkServiceIpConfig -Name $plsIpCfgName -PrivateIpAddress "10.0.3.10" -Subnet $oSnet
550+
$feIpCfg = $lb | Get-AzLoadBalancerFrontendIpConfig
551+
$pls = New-AzPrivateLinkService -ResourceGroupName $rgName -Name $plsName -Location $location -IpConfiguration $plsIpCfg -LoadBalancerFrontendIpConfiguration $feIpCfg
552+
$plsConn = New-AzPrivateLinkServiceConnection -Name $plsConnName -PrivateLinkServiceId $pls.Id
553+
New-AzPrivateEndpoint -ResourceGroupName $rgName -Name $peName -Location $location -Subnet $feSnet -PrivateLinkServiceConnection $plsConn
554+
555+
$zone1 = New-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName1
556+
$zoneCfg1 = New-AzPrivateDnsZoneConfig -Name $zoneCfgName1 -PrivateDnsZoneId $zone1.ResourceId
557+
New-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -PrivateDnsZoneConfig $zoneCfg1
558+
559+
$r5l2 = New-LiveTestRandomName -Option AllLetters -MaxLength 5
560+
$zoneName2 = "$r5l2.private.contoso.com"
561+
$zoneCfgName2 = New-LiveTestResourceName
562+
563+
$zone2 = New-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName2
564+
$zoneCfg2 = New-AzPrivateDnsZoneConfig -Name $zoneCfgName2 -PrivateDnsZoneId $zone2.ResourceId
565+
Set-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -PrivateDnsZoneConfig $zoneCfg2
566+
567+
$actual = Get-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName
568+
Assert-NotNull $actual
569+
Assert-AreEqual $zoneGroupName $actual.Name
570+
Assert-AreEqual "Succeeded" $actual.ProvisioningState
571+
Assert-AreEqual 1 $actual.PrivateDnsZoneConfigs.Count
572+
Assert-AreEqual $zoneCfgName2 $actual.PrivateDnsZoneConfigs[0].Name
573+
Assert-AreEqual $zone2.ResourceId $actual.PrivateDnsZoneConfigs[0].PrivateDnsZoneId
574+
}
575+
576+
Invoke-LiveTestScenario -Name "Remove private DNS zone group" -Description "Test removing a private DNS zone group" -ScenarioScript `
577+
{
578+
param ($rg)
579+
580+
$rgName = $rg.ResourceGroupName
581+
$location = "eastus"
582+
$feSnetName = New-LiveTestResourceName
583+
$beSnetName = New-LiveTestResourceName
584+
$oSnetName = New-LiveTestResourceName
585+
$vnetName = New-LiveTestResourceName
586+
$feIpCfgName = New-LiveTestResourceName
587+
$bePoolCfgName = New-LiveTestResourceName
588+
$lbName = New-LiveTestResourceName
589+
$plsIpCfgName = New-LiveTestResourceName
590+
$plsName = New-LiveTestResourceName
591+
$plsConnName = New-LiveTestResourceName
592+
$peName = New-LiveTestResourceName
593+
594+
$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
595+
$zoneName = "$r5l.private.contoso.com"
596+
$zoneCfgName = New-LiveTestResourceName
597+
$zoneGroupName = New-LiveTestResourceName
598+
599+
$feSnet = New-AzVirtualNetworkSubnetConfig -Name $feSnetName -AddressPrefix "10.0.1.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
600+
$beSnet = New-AzVirtualNetworkSubnetConfig -Name $beSnetName -AddressPrefix "10.0.2.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
601+
$oSnet = New-AzVirtualNetworkSubnetConfig -Name $oSnetName -AddressPrefix "10.0.3.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
602+
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $feSnet, $beSnet, $oSnet
603+
$feSnet = $vnet.Subnets | Where-Object Name -eq $feSnetName
604+
$oSnet = $vnet.Subnets | Where-Object Name -eq $oSnetName
605+
$feIpCfg = New-AzLoadBalancerFrontendIpConfig -Name $feIpCfgName -Subnet $feSnet -PrivateIpAddress "10.0.1.10"
606+
$bePoolCfg = New-AzLoadBalancerBackendAddressPoolConfig -Name $bePoolCfgName
607+
$lb = New-AzLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $location -FrontendIpConfiguration $feIpCfg -BackendAddressPool $bePoolCfg -Sku Standard
608+
$plsIpCfg = New-AzPrivateLinkServiceIpConfig -Name $plsIpCfgName -PrivateIpAddress "10.0.3.10" -Subnet $oSnet
609+
$feIpCfg = $lb | Get-AzLoadBalancerFrontendIpConfig
610+
$pls = New-AzPrivateLinkService -ResourceGroupName $rgName -Name $plsName -Location $location -IpConfiguration $plsIpCfg -LoadBalancerFrontendIpConfiguration $feIpCfg
611+
$plsConn = New-AzPrivateLinkServiceConnection -Name $plsConnName -PrivateLinkServiceId $pls.Id
612+
New-AzPrivateEndpoint -ResourceGroupName $rgName -Name $peName -Location $location -Subnet $feSnet -PrivateLinkServiceConnection $plsConn
613+
614+
New-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName
615+
$zone = Get-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName
616+
$zoneCfg = New-AzPrivateDnsZoneConfig -Name $zoneCfgName -PrivateDnsZoneId $zone.ResourceId
617+
New-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -PrivateDnsZoneConfig $zoneCfg
618+
619+
Remove-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -Force
620+
621+
$actual = Get-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -ErrorAction SilentlyContinue
622+
Assert-Null $actual
623+
}

tools/TestFx/Live/LiveTestUtility.psm1

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,56 @@ function InitializeLiveTestModule {
6262
function New-LiveTestRandomName {
6363
[CmdletBinding()]
6464
[OutputType([string])]
65-
param ()
65+
param (
66+
[Parameter()]
67+
[ValidateSet("Alphanumerics", "AllNumbers", "AllLetters", "StartWithNumber", "StartWithLetter", IgnoreCase = $false)]
68+
[string] $Option = "Alphanumerics",
69+
70+
[Parameter()]
71+
[ValidateRange(1, 20)]
72+
[int] $MaxLength = 10
73+
)
6674

6775
$alphanumerics = "0123456789abcdefghijklmnopqrstuvwxyz"
68-
$randomName = $alphanumerics[(Get-Random -Maximum 10)]
69-
for ($i = 0; $i -lt 9; $i ++) {
70-
$randomName += $alphanumerics[(Get-Random -Maximum $alphanumerics.Length)]
76+
$numLast = 10
77+
$alphanumLast = $alphanumerics.Length
78+
79+
switch ($Option) {
80+
"Alphanumerics" {
81+
$firstChar = ""
82+
$maxLen = $MaxLength
83+
$min = 0
84+
$max = $alphanumLast
85+
}
86+
"AllNumbers" {
87+
$firstChar = ""
88+
$maxLen = $MaxLength
89+
$min = 0
90+
$max = $numLast
91+
}
92+
"AllLetters" {
93+
$firstChar = ""
94+
$maxLen = $MaxLength
95+
$min = $numLast
96+
$max = $alphanumLast
97+
}
98+
"StartWithNumber" {
99+
$firstChar = $alphanumerics[(Get-Random -Maximum $numLast)]
100+
$maxLen = $MaxLength - 1
101+
$min = 0
102+
$max = $alphanumLast
103+
}
104+
"StartWithLetter" {
105+
$firstChar = $alphanumerics[(Get-Random -Minimum $numLast -Maximum $alphanumLast)]
106+
$maxLen = $MaxLength - 1
107+
$min = 0
108+
$max = $alphanumLast
109+
}
110+
}
111+
112+
$randomName += $firstChar
113+
for ($i = 0; $i -lt $maxLen; $i ++) {
114+
$randomName += $alphanumerics[(Get-Random -Minimum $min -Maximum $max)]
71115
}
72116

73117
$randomName
@@ -79,7 +123,7 @@ function New-LiveTestResourceGroupName {
79123
param ()
80124

81125
$rgPrefix = $script:ResourceGroupPrefix
82-
$rgName = New-LiveTestRandomName
126+
$rgName = New-LiveTestRandomName -Option StartWithNumber
83127

84128
$rgFullName = "$rgPrefix$rgName"
85129
$rgFullName
@@ -109,7 +153,7 @@ function New-LiveTestResourceName {
109153
param ()
110154

111155
$rPrefix = $script:ResourcePrefix
112-
$rName = New-LiveTestRandomName
156+
$rName = New-LiveTestRandomName -Option StartWithNumber
113157

114158
$rFullName = "$rPrefix$rName"
115159
$rFullName
@@ -121,7 +165,7 @@ function New-LiveTestStorageAccountName {
121165
param ()
122166

123167
$saPrefix = $script:StorageAccountPrefix
124-
$saName = New-LiveTestRandomName
168+
$saName = New-LiveTestRandomName -Option StartWithNumber
125169

126170
$saFullName = "$saPrefix$saName"
127171
$saFullName

0 commit comments

Comments
 (0)