@@ -498,43 +498,43 @@ function Test-AzureRmSignalRCustomCertificateAndCustomDomain
498498
499499 # ===== Remove domain =====
500500 # Remove domain via resource group parameter set
501- $result = Remove-AzSignalRCustomDomain - ResourceGroupName $resourceGroupName - SignalRName $signalrName - Name " domain1"
501+ $result = Remove-AzSignalRCustomDomain - ResourceGroupName $resourceGroupName - SignalRName $signalrName - Name " domain1" - PassThru
502502 Assert-True { $result }
503503
504504 # Remove domain via SignalR object parameter set
505- $result = $signalr | Remove-AzSignalRCustomDomain - Name " domain2"
505+ $result = $signalr | Remove-AzSignalRCustomDomain - Name " domain2" - PassThru
506506 Assert-True { $result }
507507
508508 # Remove domain via input object parameter set
509509 $domain3 = $signalr | New-AzSignalRCustomDomain - Name " domain3" - DomainName $customDomainName - CustomCertificateId $cert1.Id
510- $result = $domain3 | Remove-AzSignalRCustomDomain
510+ $result = $domain3 | Remove-AzSignalRCustomDomain - PassThru
511511 Assert-True { $result }
512512
513513 # Remove domain via Resource ID parameter set
514514 $domain4 = $signalr | New-AzSignalRCustomDomain - Name " domain4" - DomainName $customDomainName - CustomCertificateId $cert1.Id
515515 $domain4Resource = [pscustomobject ]@ {ResourceId = $domain4.Id }
516- $result = $domain4Resource | Remove-AzSignalRCustomDomain
516+ $result = $domain4Resource | Remove-AzSignalRCustomDomain - PassThru
517517 Assert-True { $result }
518518
519519 # ====== Remove cert =====
520520
521521 # Remove the certificate via resource group parameter set
522- $result = Remove-AzSignalRCustomCertificate - ResourceGroupName $resourceGroupName - SignalRName $signalrName - Name " cert1"
522+ $result = Remove-AzSignalRCustomCertificate - ResourceGroupName $resourceGroupName - SignalRName $signalrName - Name " cert1" - PassThru
523523 Assert-True { $result }
524524
525525 # Remove the certificate via SignalR object parameter set
526- $result = $signalr | Remove-AzSignalRCustomCertificate - Name " cert2"
526+ $result = $signalr | Remove-AzSignalRCustomCertificate - Name " cert2" - PassThru
527527 Assert-True { $result }
528528
529529 # Remove the certificate via input Object parameter set
530530 $cert2 = $signalr | New-AzSignalRCustomCertificate - Name " cert2" - KeyVaultBaseUri $keyVaultBaseUri - KeyVaultSecretName $keyVaultSecretName
531- $result = $cert2 | Remove-AzSignalRCustomCertificate
531+ $result = $cert2 | Remove-AzSignalRCustomCertificate - PassThru
532532 Assert-True { $result }
533533
534534 # Remove the certificate via Resource ID parameter set
535535 $cert2 = $signalr | New-AzSignalRCustomCertificate - Name " cert2" - KeyVaultBaseUri $keyVaultBaseUri - KeyVaultSecretName $keyVaultSecretName
536536 $certResource3 = [pscustomobject ]@ {ResourceId = $cert2.Id }
537- $result = $certResource3 | Remove-AzSignalRCustomCertificate
537+ $result = $certResource3 | Remove-AzSignalRCustomCertificate - PassThru
538538 Assert-True { $result }
539539
540540 } finally
@@ -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 ( $env: AZURE_TEST_MODE -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 ( $env: AZURE_TEST_MODE -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 ( $env: AZURE_TEST_MODE -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 ( $env: AZURE_TEST_MODE -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 ( $env: AZURE_TEST_MODE -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 ( $env: AZURE_TEST_MODE -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 ( $env: AZURE_TEST_MODE -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 ( $env: AZURE_TEST_MODE -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 (
@@ -626,4 +756,42 @@ function Remove-Environment
626756 [string ] $resourceGroupName
627757 )
628758 Remove-AzResourceGroup - Name $resourceGroupName
759+ }
760+
761+ <# !
762+ . SYNOPSIS
763+ Test IP rule cmdlets for SignalR (New/Add/Remove-AzSignalRNetworkIpRule).
764+ #>
765+ function Test-AzSignalRNetworkIpRule
766+ {
767+ $location = Get-ProviderLocation " Microsoft.SignalRService/SignalR"
768+ $nameSuffix = " iprule-test"
769+ $resourceGroupName = Get-RandomResourceGroupName $nameSuffix
770+ $signalrName = Get-RandomSignalRName $nameSuffix
771+
772+ New-AzResourceGroup - Name $resourceGroupName - Location $location
773+ $signalr = New-AzSignalR - ResourceGroupName $resourceGroupName - Name $signalrName - Sku " Premium_P1"
774+
775+ # Create IP rule objects
776+ $rule1 = New-AzSignalRNetworkIpRuleObject - Value " 10.1.0.0/16" - Action Allow
777+ $rule2 = New-AzSignalRNetworkIpRuleObject - Value " 20.2.2.2" - Action Deny
778+
779+ # a. Add via resource group parameter set
780+ $acls = Add-AzSignalRNetworkIpRule - ResourceGroupName $resourceGroupName - Name $signalrName - IpRule $rule1 , $rule2
781+ Assert-NotNull $acls
782+ Assert-AreEqual 4 $acls.IPRules.Count
783+ Assert-True { $acls.IPRules | Where-Object { $_.Value -eq " 10.1.0.0/16" -and $_.Action -eq " Allow" } }
784+ Assert-True { $acls.IPRules | Where-Object { $_.Value -eq " 20.2.2.2" -and $_.Action -eq " Deny" } }
785+
786+ # Remove one via resource group parameter set
787+ $acls = Remove-AzSignalRNetworkIpRule - ResourceGroupName $resourceGroupName - Name $signalrName - IpRule $rule1
788+ Assert-AreEqual 3 $acls.IPRules.Count
789+ Assert-False { $acls.IPRules | Where-Object { $_.Value -eq " 10.1.0.0/16" } }
790+
791+ # Remove one via resource ID parameter set
792+ $signalr = Get-AzSignalR - ResourceGroupName $resourceGroupName - Name $signalrName
793+ $acls = Remove-AzSignalRNetworkIpRule - ResourceId $signalr.Id - IpRule $rule2
794+ Assert-AreEqual 2 $acls.IPRules.Count
795+ Assert-False { $acls.IPRules | Where-Object { $_.Value -eq " 20.2.2.2" } }
796+
629797}
0 commit comments