@@ -28,6 +28,15 @@ function Test-RedisCache
28
28
29
29
Assert-NotNull $cacheCreated.PrimaryKey " PrimaryKey do not exists"
30
30
Assert-NotNull $cacheCreated.SecondaryKey " SecondaryKey do not exists"
31
+
32
+ Assert-AreEqual 2 $cacheCreated.Instances.Count
33
+ for ($i = 0 ; $i -lt $cacheCreated.Instances.Count ; $i ++ )
34
+ {
35
+ Assert-AreEqual (15000 + $i ) $cacheCreated.Instances [$i ].SslPort
36
+ Assert-Null $cacheCreated.Instances [$i ].NonSslPort
37
+ Assert-Null $cacheCreated.Instances [$i ].ShardId
38
+ Assert-Null $cacheCreated.Instances [$i ].Zone
39
+ }
31
40
32
41
# In loop to check if cache exists
33
42
for ($i = 0 ; $i -le 60 ; $i ++ )
@@ -57,6 +66,15 @@ function Test-RedisCache
57
66
Assert-NotNull $cacheUpdated.PrimaryKey " PrimaryKey do not exists"
58
67
Assert-NotNull $cacheUpdated.SecondaryKey " SecondaryKey do not exists"
59
68
69
+ Assert-AreEqual 2 $cacheUpdated.Instances.Count
70
+ for ($i = 0 ; $i -lt $cacheUpdated.Instances.Count ; $i ++ )
71
+ {
72
+ Assert-AreEqual (15000 + $i ) $cacheUpdated.Instances [$i ].SslPort
73
+ Assert-AreEqual (13000 + $i ) $cacheUpdated.Instances [$i ].NonSslPort
74
+ Assert-Null $cacheUpdated.Instances [$i ].ShardId
75
+ Assert-Null $cacheUpdated.Instances [$i ].Zone
76
+ }
77
+
60
78
# List all cache in resource group
61
79
$cachesInResourceGroup = Get-AzRedisCache - ResourceGroupName $resourceGroupName
62
80
Assert-True {$cachesInResourceGroup.Count -ge 1 }
@@ -87,6 +105,14 @@ function Test-RedisCache
87
105
$found = 1
88
106
Assert-AreEqual $location $cachesInSubscription [$i ].Location
89
107
Assert-AreEqual $resourceGroupName $cachesInSubscription [$i ].ResourceGroupName
108
+ Assert-AreEqual 2 $cachesInSubscription [$i ].Instances.Count
109
+ for ($j = 0 ; $j -lt $cachesInSubscription [$i ].Instances.Count; $j ++ )
110
+ {
111
+ Assert-AreEqual (15000 + $j ) $cachesInSubscription [$i ].Instances[$j ].SslPort
112
+ Assert-AreEqual (13000 + $j ) $cachesInSubscription [$i ].Instances[$j ].NonSslPort
113
+ Assert-Null $cachesInSubscription [$i ].Instances[$j ].ShardId
114
+ Assert-Null $cachesInSubscription [$i ].Instances[$j ].Zone
115
+ }
90
116
break
91
117
}
92
118
}
@@ -231,6 +257,16 @@ function Test-RedisCacheClustering
231
257
232
258
Assert-NotNull $cacheCreated.PrimaryKey " PrimaryKey do not exists"
233
259
Assert-NotNull $cacheCreated.SecondaryKey " SecondaryKey do not exists"
260
+
261
+ Assert-AreEqual ($cacheCreated.ShardCount * 2 ) $cacheCreated.Instances.Count
262
+
263
+ for ($i = 0 ; $i -lt $cacheCreated.Instances.Count ; $i ++ )
264
+ {
265
+ Assert-AreEqual (15000 + $i ) $cacheCreated.Instances [$i ].SslPort
266
+ Assert-Null $cacheCreated.Instances [$i ].NonSslPort
267
+ # ShardId check should be added here in future
268
+ Assert-Null $cacheCreated.Instances [$i ].Zone
269
+ }
234
270
235
271
# In loop to check if cache exists
236
272
for ($i = 0 ; $i -le 60 ; $i ++ )
@@ -863,6 +899,124 @@ function Test-Zones
863
899
Remove-AzResourceGroup - Name $resourceGroupName - Force
864
900
}
865
901
902
+ function Test-ZoneRedundancy
903
+ {
904
+ # Setup
905
+ $resourceGroupName = " PowerShellTest-10"
906
+ $cacheName = " redisteam010"
907
+ $location = Get-Location - providerNamespace " Microsoft.Cache" - resourceType " redis" - preferredLocation " Central US"
908
+ $zones = @ (" 1" , " 2" )
909
+ $replicasPerMaster = 2
910
+
911
+ # Create resource group
912
+ New-AzResourceGroup - Name $resourceGroupName - Location $location
913
+
914
+ # Creating Cache
915
+ $cacheCreated = New-AzRedisCache - ResourceGroupName $resourceGroupName - Name $cacheName - Location $location - Size P1 - Sku Premium - ReplicasPerMaster $replicasPerMaster - Zone $zones
916
+
917
+ Assert-AreEqual $cacheName $cacheCreated.Name
918
+ Assert-AreEqual $location $cacheCreated.Location
919
+ Assert-AreEqual " Microsoft.Cache/Redis" $cacheCreated.Type
920
+ Assert-AreEqual $resourceGroupName $cacheCreated.ResourceGroupName
921
+ Assert-AreEqual 6379 $cacheCreated.Port
922
+ Assert-AreEqual 6380 $cacheCreated.SslPort
923
+ Assert-AreEqual " creating" $cacheCreated.ProvisioningState
924
+ Assert-AreEqual " 6GB" $cacheCreated.Size
925
+ Assert-AreEqual " Premium" $cacheCreated.Sku
926
+
927
+ Assert-NotNull $cacheCreated.PrimaryKey " PrimaryKey do not exists"
928
+ Assert-NotNull $cacheCreated.SecondaryKey " SecondaryKey do not exists"
929
+
930
+ Assert-AreEqual $replicasPerMaster $cacheCreated.ReplicasPerMaster
931
+ Assert-AreEqual $zones [0 ] $cacheCreated.Zone [0 ]
932
+ Assert-AreEqual $zones [1 ] $cacheCreated.Zone [1 ]
933
+ Assert-AreEqual ($replicasPerMaster + 1 ) $cacheCreated.Instances.Count
934
+
935
+ for ($i = 0 ; $i -lt $cacheCreated.Instances.Count ; $i ++ )
936
+ {
937
+ Assert-AreEqual (15000 + $i ) $cacheCreated.Instances [$i ].SslPort
938
+ Assert-Null $cacheCreated.Instances [$i ].NonSslPort
939
+ Assert-Null $cacheCreated.Instances [$i ].ShardId
940
+ # Zone will be NULL initially and should be available post cache provisioing succeeds
941
+ Assert-Null $cacheCreated.Instances [$i ].Zone
942
+ }
943
+
944
+ # In loop to check if cache exists
945
+ for ($i = 0 ; $i -le 60 ; $i ++ )
946
+ {
947
+ Start-TestSleep 30000
948
+ $cacheGet = Get-AzRedisCache - ResourceGroupName $resourceGroupName - Name $cacheName
949
+ if ([string ]::Compare(" succeeded" , $cacheGet [0 ].ProvisioningState, $True ) -eq 0 )
950
+ {
951
+ Assert-AreEqual $cacheName $cacheGet [0 ].Name
952
+ Assert-AreEqual " succeeded" $cacheGet [0 ].ProvisioningState
953
+ break
954
+ }
955
+ Assert-False {$i -eq 60 } " Cache is not in succeeded state even after 30 min."
956
+ }
957
+
958
+ # Updating Cache
959
+ $cacheUpdated = Set-AzRedisCache - Name $cacheName - EnableNonSslPort $true - MinimumTlsVersion 1.2
960
+
961
+ $replicasPerMaster = 2
962
+ Assert-AreEqual $cacheName $cacheUpdated.Name
963
+ Assert-AreEqual 6379 $cacheUpdated.Port
964
+ Assert-AreEqual 6380 $cacheUpdated.SslPort
965
+ Assert-AreEqual " succeeded" $cacheUpdated.ProvisioningState
966
+ Assert-True { $cacheUpdated.EnableNonSslPort }
967
+
968
+ Assert-NotNull $cacheUpdated.PrimaryKey " PrimaryKey do not exists"
969
+ Assert-NotNull $cacheUpdated.SecondaryKey " SecondaryKey do not exists"
970
+
971
+ Assert-AreEqual $replicasPerMaster $cacheUpdated.ReplicasPerMaster
972
+ Assert-AreEqual $zones [0 ] $cacheUpdated.Zone [0 ]
973
+ Assert-AreEqual $zones [1 ] $cacheUpdated.Zone [1 ]
974
+ Assert-AreEqual ($replicasPerMaster + 1 ) $cacheUpdated.Instances.Count
975
+
976
+ for ($i = 0 ; $i -lt $cacheUpdated.Instances.Count ; $i ++ )
977
+ {
978
+ Assert-AreEqual (15000 + $i ) $cacheUpdated.Instances [$i ].SslPort
979
+ Assert-AreEqual (13000 + $i ) $cacheUpdated.Instances [$i ].NonSslPort
980
+ Assert-Null $cacheUpdated.Instances [$i ].ShardId
981
+ Assert-NotNull $cacheUpdated.Instances [$i ].Zone
982
+ }
983
+
984
+ # List all cache in resource group
985
+ $cachesInResourceGroup = Get-AzRedisCache - ResourceGroupName $resourceGroupName
986
+ Assert-True {$cachesInResourceGroup.Count -ge 1 }
987
+
988
+ $found = 0
989
+ for ($i = 0 ; $i -lt $cachesInResourceGroup.Count ; $i ++ )
990
+ {
991
+ if ($cachesInResourceGroup [$i ].Name -eq $cacheName )
992
+ {
993
+ $found = 1
994
+ Assert-AreEqual $location $cachesInResourceGroup [$i ].Location
995
+ Assert-AreEqual $resourceGroupName $cachesInResourceGroup [$i ].ResourceGroupName
996
+ Assert-AreEqual $replicasPerMaster $cachesInResourceGroup [$i ].ReplicasPerMaster
997
+ Assert-AreEqual $zones [0 ] $cachesInResourceGroup [$i ].Zone[0 ]
998
+ Assert-AreEqual $zones [1 ] $cachesInResourceGroup [$i ].Zone[1 ]
999
+ Assert-AreEqual ($replicasPerMaster + 1 ) $cachesInResourceGroup [$i ].Instances.Count
1000
+
1001
+ for ($j = 0 ; $j -lt $cachesInResourceGroup [$j ].Instances.Count; $j ++ )
1002
+ {
1003
+ Assert-AreEqual (15000 + $j ) $cachesInResourceGroup [$i ].Instances[$j ].SslPort
1004
+ Assert-AreEqual (13000 + $j ) $cachesInResourceGroup [$i ].Instances[$j ].NonSslPort
1005
+ Assert-Null $cachesInResourceGroup [$i ].Instances[$j ].ShardId
1006
+ Assert-NotNull $cachesInResourceGroup [$i ].Instances[$j ].Zone
1007
+ }
1008
+ break
1009
+ }
1010
+ }
1011
+ Assert-True {$found -eq 1 } " Cache created earlier is not found."
1012
+
1013
+ # Delete cache
1014
+ Assert-True {Remove-AzRedisCache - ResourceGroupName $resourceGroupName - Name $cacheName - Force - PassThru} " Remove cache failed."
1015
+
1016
+ # Delete resource group
1017
+ Remove-AzResourceGroup - Name $resourceGroupName - Force
1018
+ }
1019
+
866
1020
867
1021
<#
868
1022
. SYNOPSIS
0 commit comments