Skip to content

Commit bd5c67f

Browse files
committed
Filtering and Pagination is supported in Powershell
1 parent a2a576f commit bd5c67f

File tree

10 files changed

+2198
-200
lines changed

10 files changed

+2198
-200
lines changed

src/ResourceManager/Dns/Commands.Dns.Test/Commands.Dns.Test.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@
194194
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests\TestRecordSetCrudWithPiping.json" />
195195
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests\TestRecordSetEtagMismatch.json" />
196196
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests\TestRecordSetGet.json" />
197+
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests\TestRecordSetGetWithEndsWith.json" />
198+
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests\TestRecordSetGetWithEndsWithAndName.json" />
197199
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests\TestRecordSetMX.json" />
198200
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests\TestRecordSetNS.json" />
199201
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests\TestRecordSetRemoveRecordTypeMismatch.json" />
@@ -202,6 +204,8 @@
202204
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests\TestZoneCrud.json" />
203205
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests\TestZoneCrudWithPiping.json" />
204206
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests\TestZoneList.json" />
207+
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests\TestZoneListWithEndsWith.json" />
208+
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests\TestZoneListWithEndsWithAndName.json" />
205209
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests\TestZoneRemoveEtagMismatch.json" />
206210
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests\TestZoneRemoveNotFound.json" />
207211
<None Include="SessionRecords\Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests\TestZoneSetEtagMismatch.json" />

src/ResourceManager/Dns/Commands.Dns.Test/ScenarioTests/RecordsTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,5 +138,19 @@ public void TestRecordSetGet()
138138
{
139139
RunPowerShellTest("Test-RecordSetGet");
140140
}
141+
142+
[Fact]
143+
[Trait(Category.AcceptanceType, Category.CheckIn)]
144+
public void TestRecordSetGetWithEndsWith()
145+
{
146+
RunPowerShellTest("Test-RecordSetGetWithEndsWith");
147+
}
148+
149+
[Fact]
150+
[Trait(Category.AcceptanceType, Category.CheckIn)]
151+
public void TestRecordSetGetWithEndsWithAndName()
152+
{
153+
RunPowerShellTest("Test-RecordSetGetWithEndsWithAndName");
154+
}
141155
}
142156
}

src/ResourceManager/Dns/Commands.Dns.Test/ScenarioTests/RecordsTests.ps1

Lines changed: 79 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ function Test-RecordSetSRV
362362
$record = $record | Add-AzureDnsRecordConfig -Port 53 -Priority 1 -Target ns1.example.com -Weight 5
363363
$record = $record | Add-AzureDnsRecordConfig -Port 53 -Priority 2 -Target ns2.example.com -Weight 10
364364
$record = $record | Remove-AzureDnsRecordConfig -Port 53 -Priority 2 -Target ns2.example.com -Weight 10
365-
$record = $record | Remove-AzureDnsRecordConfig -Port 42 -Priority 2435435 -Target ns5.example.com -Weight 1600
365+
$record = $record | Remove-AzureDnsRecordConfig -Port 42 -Priority 999 -Target ns5.example.com -Weight 1600
366366

367367
$record | Set-AzureDnsRecordSet
368368
$getResult = Get-AzureDnsRecordSet -Name $recordName -ZoneName $zoneName -ResourceGroupName $resourceGroup.ResourceGroupName -RecordType SRV
@@ -518,7 +518,7 @@ function Test-RecordSetRemoveRecordTypeMismatch
518518

519519
<#
520520
.SYNOPSIS
521-
Zone CRUD with piping
521+
Record Set Etag Mismatch
522522
#>
523523
function Test-RecordSetEtagMismatch
524524
{
@@ -543,7 +543,7 @@ function Test-RecordSetEtagMismatch
543543

544544
<#
545545
.SYNOPSIS
546-
Zone CRUD with piping
546+
Record Set Get
547547
#>
548548
function Test-RecordSetGet
549549
{
@@ -582,5 +582,81 @@ function Test-RecordSetGet
582582
$zone | Remove-AzureDnsRecordSet -Name $recordName2 -RecordType AAAA -Force
583583
$zone | Remove-AzureDnsRecordSet -Name $recordName3 -RecordType MX -Force
584584

585+
$zone | Remove-AzureDnsZone -Force -IgnoreEtag
586+
}
587+
588+
<#
589+
.SYNOPSIS
590+
Record Set Get using EndsWith parameter
591+
#>
592+
function Test-RecordSetGetWithEndsWith
593+
{
594+
$rootRecordName = "@"
595+
$recordSuffix = ".com"
596+
$anotherSuffix = ".con"
597+
598+
$zoneName = getAssetname
599+
600+
$recordName1 = (getAssetname) + $recordSuffix
601+
$recordName2 = (getAssetname) + $anotherSuffix
602+
$recordName3 = (getAssetname) + $recordSuffix
603+
604+
$zone = TestSetup-CreateResourceGroup | New-AzureDnsZone -Name $zoneName
605+
606+
# test for root records
607+
$rootRecords = $zone | Get-AzureDnsRecordSet -EndsWith $rootRecordName
608+
609+
Assert-AreEqual 2 $rootRecords.Count -Message ("Expected 2 root records. Actual: " + $rootRecords.Count)
610+
611+
New-AzureDnsRecordSet -Zone $zone -Name $recordName1 -Ttl 100 -RecordType AAAA
612+
New-AzureDnsRecordSet -Zone $zone -Name $recordName2 -Ttl 1200 -RecordType AAAA
613+
New-AzureDnsRecordSet -Zone $zone -Name $recordName3 -Ttl 1500 -RecordType MX
614+
615+
# test for records within type
616+
$aaaaRecords = $zone | Get-AzureDnsRecordSet -RecordType AAAA -EndsWith $recordSuffix
617+
$mxRecords = $zone | Get-AzureDnsRecordSet -RecordType MX -EndsWith $recordSuffix
618+
619+
Assert-AreEqual 1 $aaaaRecords.Count -Message ("Expected 1 AAAA record. Actual: " + $aaaaRecords.Count)
620+
Assert-AreEqual 1 $mxRecords.Count -Message ("Expected 1 MX record. Actual: " + $mxRecords.Count)
621+
622+
# all records
623+
$allRecords = $zone | Get-AzureDnsRecordSet -EndsWith $recordSuffix
624+
625+
Assert-AreEqual 2 $allRecords.Count -Message ("Expected 2 records across types. Actual: " + $allRecords.Count)
626+
627+
$zone | Remove-AzureDnsRecordSet -Name $recordName1 -RecordType AAAA -Force
628+
$zone | Remove-AzureDnsRecordSet -Name $recordName2 -RecordType AAAA -Force
629+
$zone | Remove-AzureDnsRecordSet -Name $recordName3 -RecordType MX -Force
630+
631+
$zone | Remove-AzureDnsZone -Force -IgnoreEtag
632+
}
633+
634+
<#
635+
.SYNOPSIS
636+
Record Set Get using EndsWith parameter and Name parameter. Should throw exception.
637+
#>
638+
function Test-RecordSetGetWithEndsWithAndName
639+
{
640+
$rootRecordName = "@"
641+
$recordSuffix = ".com"
642+
$zoneName = getAssetname
643+
$recordName1 = getAssetname + $recordSuffix
644+
$recordName2 = getAssetname
645+
$recordName3 = getAssetname + $recordSuffix
646+
647+
$zone = TestSetup-CreateResourceGroup | New-AzureDnsZone -Name $zoneName
648+
649+
New-AzureDnsRecordSet -Zone $zone -Name $recordName1 -Ttl 100 -RecordType AAAA
650+
New-AzureDnsRecordSet -Zone $zone -Name $recordName2 -Ttl 1200 -RecordType AAAA
651+
New-AzureDnsRecordSet -Zone $zone -Name $recordName3 -Ttl 1500 -RecordType MX
652+
653+
Assert-Throws { $zone | Get-AzureDnsRecordSet -Name $recordName1 -RecordType AAAA -EndsWith $recordSuffix } "Name parameter cannot be used with EndsWith."
654+
655+
Assert-Throws { $zone | Get-AzureDnsRecordSet -Name $recordName1 -EndsWith $recordSuffix } "Name parameter cannot be used with EndsWith."
656+
657+
$zone | Remove-AzureDnsRecordSet -Name $recordName1 -RecordType AAAA -Force
658+
$zone | Remove-AzureDnsRecordSet -Name $recordName2 -RecordType AAAA -Force
659+
$zone | Remove-AzureDnsRecordSet -Name $recordName3 -RecordType MX -Force
660+
585661
$zone | Remove-AzureDnsZone -Force -IgnoreEtag
586662
}

src/ResourceManager/Dns/Commands.Dns.Test/ScenarioTests/ZoneTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,20 @@ public void TestZoneList()
4040
{
4141
RunPowerShellTest("Test-ZoneList");
4242
}
43+
44+
[Fact]
45+
[Trait(Category.AcceptanceType, Category.CheckIn)]
46+
public void TestZoneListWithEndsWith()
47+
{
48+
RunPowerShellTest("Test-ZoneListWithEndsWith");
49+
}
50+
51+
[Fact]
52+
[Trait(Category.AcceptanceType, Category.CheckIn)]
53+
public void TestZoneListWithEndsWithAndName()
54+
{
55+
RunPowerShellTest("Test-ZoneListWithEndsWithAndName");
56+
}
4357

4458
[Fact(Skip = "Service does not yet support this")]
4559
[Trait(Category.AcceptanceType, Category.CheckIn)]

src/ResourceManager/Dns/Commands.Dns.Test/ScenarioTests/ZoneTests.ps1

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,46 @@ function Test-ZoneList
202202
Assert-AreEqual 0 $result[1].Tags.Count
203203

204204
$result | Remove-AzureDnsZone -PassThru -Force
205+
}
206+
207+
<#
208+
.SYNOPSIS
209+
Zone List With EndsWith
210+
#>
211+
function Test-ZoneListWithEndsWith
212+
{
213+
$suffix = ".com"
214+
$suffixWithDot = ".com."
215+
$zoneName1 = getAssetname
216+
$zoneName2 = $zoneName1 + $suffix
217+
$resourceGroup = TestSetup-CreateResourceGroup
218+
$createdZone1 = $resourceGroup | New-AzureDnsZone -Name $zoneName1
219+
$createdZone2 = $resourceGroup | New-AzureDnsZone -Name $zoneName2
220+
221+
$result = Get-AzureDnsZone -ResourceGroupName $resourceGroup.ResourceGroupName -EndsWith $suffixWithDot
222+
223+
Assert-AreEqual 1 $result.Count
224+
225+
Assert-AreEqual $createdZone2.Etag $result[0].Etag
226+
Assert-AreEqual $createdZone2.Name $result[0].Name
227+
Assert-NotNull $resourceGroup.ResourceGroupName $result[0].ResourceGroupName
228+
229+
$result | Remove-AzureDnsZone -PassThru -Force
230+
}
231+
232+
<#
233+
.SYNOPSIS
234+
Zone List With EndsWith
235+
#>
236+
function Test-ZoneListWithEndsWithAndName
237+
{
238+
$suffix = ".com"
239+
$suffixWithDot = ".com."
240+
$zoneName1 = getAssetname
241+
$zoneName2 = $zoneName1 + $suffix
242+
$resourceGroup = TestSetup-CreateResourceGroup
243+
$createdZone1 = $resourceGroup | New-AzureDnsZone -Name $zoneName1
244+
$createdZone2 = $resourceGroup | New-AzureDnsZone -Name $zoneName2
245+
246+
Assert-Throws { Get-AzureDnsZone -ResourceGroupName $resourceGroup.ResourceGroupName -Name $zoneName2 -EndsWith $suffixWithDot } "Name parameter cannot be used with EndsWith."
205247
}

src/ResourceManager/Dns/Commands.Dns.Test/SessionRecords/Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests/TestRecordSetGet.json

Lines changed: 179 additions & 194 deletions
Large diffs are not rendered by default.

src/ResourceManager/Dns/Commands.Dns.Test/SessionRecords/Microsoft.Azure.Commands.ScenarioTest.DnsTests.RecordsTests/TestRecordSetGetWithEndsWith.json

Lines changed: 961 additions & 0 deletions
Large diffs are not rendered by default.

src/ResourceManager/Dns/Commands.Dns.Test/SessionRecords/Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests/TestZoneListWithEndsWith.json

Lines changed: 505 additions & 0 deletions
Large diffs are not rendered by default.

src/ResourceManager/Dns/Commands.Dns.Test/SessionRecords/Microsoft.Azure.Commands.ScenarioTest.DnsTests.ZoneTests/TestZoneListWithEndsWithAndName.json

Lines changed: 397 additions & 0 deletions
Large diffs are not rendered by default.

src/ResourceManager/Dns/Commands.Dns/Models/DnsClient.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public List<DnsZone> ListDnsZones(string resourceGroupName, string endsWith)
130130
{
131131
ZoneListParameters zoneListParameters = new ZoneListParameters
132132
{
133-
Filter = string.Format("endswith(Name,'{0}')", endsWith)
133+
Filter = endsWith == null ? null : string.Format("endswith(Name,'{0}')", endsWith)
134134
};
135135

136136
ZoneListResponse getResponse = this.DnsManagementClient.Zones.List(resourceGroupName, zoneListParameters);
@@ -238,7 +238,7 @@ public List<DnsRecordSet> ListRecordSets(string zoneName, string resourceGroupNa
238238
{
239239
RecordListParameters recordListParameters = new RecordListParameters
240240
{
241-
Filter = string.Format("endswith(Name,'{0}')", endsWith)
241+
Filter = endsWith == null ? null : string.Format("endswith(Name,'{0}')", endsWith)
242242
};
243243

244244
RecordListResponse listResponse = this.DnsManagementClient.Records.List(resourceGroupName, zoneName, recordType, recordListParameters);
@@ -252,7 +252,7 @@ public List<DnsRecordSet> ListRecordSets(string zoneName, string resourceGroupNa
252252
{
253253
RecordListParameters recordListParameters = new RecordListParameters
254254
{
255-
Filter = string.Format("endswith(Name,'{0}')", endsWith)
255+
Filter = endsWith == null ? null : string.Format("endswith(Name,'{0}')", endsWith)
256256
};
257257

258258
RecordListResponse listResponse = this.DnsManagementClient.Records.ListAll(resourceGroupName, zoneName, recordListParameters);

0 commit comments

Comments
 (0)