@@ -80,6 +80,65 @@ function Test-ZoneCrud
80
80
Remove-AzResourceGroup - Name $resourceGroup.ResourceGroupName - Force
81
81
}
82
82
83
+ <#
84
+ . SYNOPSIS
85
+ Zone creation with delegation
86
+ #>
87
+ function Test-ZoneWithDelegation
88
+ {
89
+ # Parent zone creation
90
+ $parentZoneName = Get-RandomZoneName
91
+ $resourceGroup = TestSetup- CreateResourceGroup
92
+
93
+ try
94
+ {
95
+ $createdParentZone = New-AzDnsZone - Name $parentZoneName - ResourceGroupName $resourceGroup.ResourceGroupName - Tags @ {tag1 = " value1" }
96
+
97
+ Assert-NotNull $createdParentZone
98
+ Assert-NotNull $createdParentZone.Etag
99
+ Assert-AreEqual $parentZoneName $createdParentZone.Name
100
+ Assert-AreEqual $resourceGroup.ResourceGroupName $createdParentZone.ResourceGroupName
101
+ Assert-AreEqual 1 $createdParentZone.Tags.Count
102
+ Assert-AreEqual 2 $createdParentZone.NumberOfRecordSets
103
+ Assert-AreNotEqual $createdParentZone.NumberOfRecordSets $createdParentZone.MaxNumberOfRecordSets
104
+ Assert-Null $createdParentZone.Type
105
+
106
+ # Child zone creation , pass ParentZoneName to set up delegation
107
+ $childZoneNamePrefix = Get-RandomZoneName
108
+ $childZoneName = $childZoneNamePrefix + ' .' + $parentZoneName
109
+ $createdChildZone = New-AzDnsZone - Name $childZoneName - ResourceGroupName $resourceGroup.ResourceGroupName - Tags @ {tag1 = " value1" } - ParentZoneName $parentZoneName
110
+
111
+ Assert-NotNull $createdChildZone
112
+ Assert-NotNull $createdChildZone.Etag
113
+ Assert-AreEqual $childZoneName $createdChildZone.Name
114
+ Assert-AreEqual $resourceGroup.ResourceGroupName $createdChildZone.ResourceGroupName
115
+ Assert-AreEqual 1 $createdChildZone.Tags.Count
116
+ Assert-AreEqual 2 $createdChildZone.NumberOfRecordSets
117
+ Assert-AreNotEqual $createdChildZone.NumberOfRecordSets $createdChildZone.MaxNumberOfRecordSets
118
+ Assert-Null $createdChildZone.Type
119
+
120
+ # retrieve the delegation record set in parent with name prefix of the child zone created above
121
+ $delegationRecordSet = Get-AzDnsRecordSet - Name $childZoneNamePrefix - RecordType NS - ZoneName $parentZoneName - ResourceGroupName $resourceGroup.ResourceGroupName
122
+
123
+ Assert-NotNull $delegationRecordSet
124
+ Assert-NotNull $delegationRecordSet.Records
125
+ Assert-AreEqual $createdChildZone.NameServers.Count $delegationRecordSet.Records.Count
126
+
127
+ # clean up - deleting resources created as part of the test
128
+ $removedParent = Remove-AzDnsZone - Name $parentZoneName - ResourceGroupName $resourceGroup.ResourceGroupName - PassThru - Confirm:$false
129
+ $removedChild = Remove-AzDnsZone - Name $childZoneName - ResourceGroupName $resourceGroup.ResourceGroupName - PassThru - Confirm:$false
130
+
131
+ Assert-True { $removedParent }
132
+ Assert-True { $removedChild }
133
+
134
+ Assert-Throws { Get-AzDnsZone - Name $parentZoneName - ResourceGroupName $resourceGroup.ResourceGroupName }
135
+ Assert-Throws { Get-AzDnsZone - Name $childZoneName - ResourceGroupName $resourceGroup.ResourceGroupName }
136
+ }
137
+ finally
138
+ {
139
+ Remove-AzResourceGroup - Name $resourceGroup.ResourceGroupName - Force
140
+ }
141
+ }
83
142
<#
84
143
. SYNOPSIS
85
144
Full Private Zone CRUD cycle with both registration and resolution virtual networks
0 commit comments