@@ -73,7 +73,7 @@ function Test-AzureRmSignalR
7373 $newKeys1 = Get-AzSignalRKey - ResourceGroupName $resourceGroupName - Name $signalrName
7474 Assert-NotNull $newKeys1
7575
76- if ( $ env: AZURE_TEST_MODE -eq " Record" )
76+ if ( GetTestMode -eq " Record" )
7777 {
7878 Assert-AreNotEqual $keys.PrimaryKey $newKeys1.PrimaryKey
7979 Assert-AreNotEqual $keys.PrimaryConnectionString $newKeys1.PrimaryConnectionString
@@ -89,7 +89,7 @@ function Test-AzureRmSignalR
8989 Assert-NotNull $newKeys2
9090 Assert-AreEqual $newKeys1.PrimaryKey $newKeys2.PrimaryKey
9191 Assert-AreEqual $newKeys1.PrimaryConnectionString $newKeys2.PrimaryConnectionString
92- if ( $ env: AZURE_TEST_MODE -eq " Record" )
92+ if ( GetTestMode -eq " Record" )
9393 {
9494 Assert-AreNotEqual $newKeys1.SecondaryKey $newKeys2.SecondaryKey
9595 Assert-AreNotEqual $newKeys1.SecondaryConnectionString $newKeys2.SecondaryConnectionString
@@ -159,7 +159,7 @@ function Test-AzureRmSignalRWithDefaultArgs
159159 # The following two lines don't work in "playback" mode because all the connection strings are sanitized to the same value.
160160 # If test mode is playback , skip the test
161161
162- if ( $ env: AZURE_TEST_MODE -eq " Record" )
162+ if ( GetTestMode -eq " Record" )
163163 {
164164 Assert-AreNotEqual $keys.PrimaryKey $newKeys1.PrimaryKey
165165 Assert-AreNotEqual $keys.PrimaryConnectionString $newKeys1.PrimaryConnectionString
@@ -544,6 +544,136 @@ function Test-AzureRmSignalRCustomCertificateAndCustomDomain
544544 }
545545}
546546
547+ <#
548+ . SYNOPSIS
549+ Test replica cmdlets for SignalR.
550+ #>
551+ function Test-AzSignalRReplica
552+ {
553+ $location = Get-ProviderLocation " Microsoft.SignalRService/SignalR"
554+ $nameSuffix = " replica-test"
555+ $resourceGroupName = " powershellsignalrreplicatest"
556+ $signalrName = " powershellsignalrreplicatest1"
557+ $replicaName1 = " replica1-11111"
558+ $replicaName2 = " replica2-22222"
559+
560+ try
561+ {
562+ # Setup - Create resource group and SignalR service (Premium required for replicas)
563+ # New-AzResourceGroup -Name $resourceGroupName -Location $location # Don't create resource group in the test, otherwise it would be cleaned up by "ResourceCleanerDelegatingHandler" in Azure PowerShell test framwork. Setup the resource group in advance.
564+ $signalr = New-AzSignalR - ResourceGroupName $resourceGroupName - Name $signalrName - Sku " Premium_P1" - Location $location
565+
566+ # Test Create replica using SignalR object parameter set
567+ $replica1 = $signalr | New-AzSignalRReplica - Name $replicaName1 - Location " West US 2" - UnitCount 2
568+ Assert-NotNull $replica1
569+ Assert-AreEqual $replicaName1 $replica1.Name
570+ Assert-LocationEqual " West US 2" $replica1.Location
571+ Assert-AreEqual 2 $replica1.Sku.Capacity
572+
573+ # Replica may be in "updating" internally, wait until update finishes.
574+ if ( GetTestMode -eq " Record" )
575+ {
576+ Start-Sleep - Seconds 120
577+ }
578+
579+ $replica2 = $signalr | New-AzSignalRReplica - Name $replicaName2 - Location " East US 2"
580+ Assert-NotNull $replica2
581+ Assert-AreEqual $replicaName2 $replica2.Name
582+ Assert-AreEqual 1 $replica2.Sku.Capacity
583+
584+ # Test Get replica using SignalR object parameter set
585+ $retrievedReplica = $signalr | Get-AzSignalRReplica - Name $replicaName1
586+ Assert-NotNull $retrievedReplica
587+ Assert-AreEqual $replicaName1 $retrievedReplica.Name
588+
589+ # Test List all replicas using SignalR object parameter set
590+ $replicas = $signalr | Get-AzSignalRReplica
591+ Assert-NotNull $replicas
592+ Assert-AreEqual 2 $replicas.Count
593+
594+ # Replica may be in "updating" internally, wait until update finishes.
595+ if ( GetTestMode -eq " Record" )
596+ {
597+ Start-Sleep - Seconds 120
598+ }
599+
600+ # Test Update replica using InputObject parameter set
601+ $updatedReplica = $replica1 | Update-AzSignalRReplica - RegionEndpointEnabled " Disabled"
602+ Assert-AreEqual " Disabled" $updatedReplica.RegionEndpointEnabled
603+
604+ # Replica may be in "updating" internally, wait until update finishes.
605+ if ( GetTestMode -eq " Record" )
606+ {
607+ Start-Sleep - Seconds 120
608+ }
609+
610+ # Test Stop replica using InputObject parameter set
611+ $result = $replica1 | Stop-AzSignalRReplica - PassThru
612+ Assert-True { $result }
613+
614+ # Replica may be in "updating" internally, wait until update finishes.
615+ if ( GetTestMode -eq " Record" )
616+ {
617+ Start-Sleep - Seconds 120
618+ }
619+
620+ # Test Start replica using InputObject parameter set
621+ $stoppedReplica = Get-AzSignalRReplica - ResourceGroupName $resourceGroupName - SignalRName $signalrName - Name $replicaName1
622+ $result = $stoppedReplica | Start-AzSignalRReplica - PassThru
623+ Assert-True { $result }
624+
625+ # Replica may be in "updating" internally, wait until update finishes.
626+ if ( GetTestMode -eq " Record" )
627+ {
628+ Start-Sleep - Seconds 120
629+ }
630+
631+ # Test Restart replica using InputObject parameter set
632+ $result = $replica2 | Restart-AzSignalRReplica - PassThru
633+ Assert-True { $result }
634+
635+ # Replica may be in "updating" internally, wait until update finishes.
636+ if ( GetTestMode -eq " Record" )
637+ {
638+ Start-Sleep - Seconds 120
639+ }
640+
641+ # Test Remove replica using InputObject parameter set
642+ $result = $replica1 | Remove-AzSignalRReplica - PassThru
643+ Assert-True { $result }
644+
645+ # Replica may be in "updating" internally, wait until update finishes.
646+ if ( GetTestMode -eq " Record" )
647+ {
648+ Start-Sleep - Seconds 120
649+ }
650+
651+ # Test Remove replica using SignalR object parameter set
652+ $result = $signalr | Remove-AzSignalRReplica - Name $replicaName2 - PassThru
653+ Assert-True { $result }
654+
655+ # Replica may be in "updating" internally, wait until update finishes.
656+ if ( GetTestMode -eq " Record" )
657+ {
658+ Start-Sleep - Seconds 120
659+ }
660+
661+ # Verify replicas are removed
662+ $replicas = Get-AzSignalRReplica - ResourceGroupName $resourceGroupName - SignalRName $signalrName
663+ Assert-AreEqual 0 $replicas.Count
664+
665+ } finally
666+ {
667+ # Cleanup - Remove any remaining resources
668+ try {
669+ # Get-AzSignalRReplica -ResourceGroupName $resourceGroupName -SignalRName $signalrName | Remove-AzSignalRReplica
670+ } catch {
671+ # Ignore cleanup errors
672+ }
673+ # Remove-AzResourceGroup -Name $resourceGroupName -Force
674+ }
675+ }
676+
547677function New-Environment
548678{
549679 param (
0 commit comments