@@ -580,4 +580,140 @@ function Test-UpdateLongTermRetentionBackup
580580
581581 # Update-AzSqlDatabaseLongTermRetentionBackup returns after target BSR is set
582582 Assert-AreEqual " Local" $backupAfterSet.BackupStorageRedundancy
583+ }
584+
585+ <#
586+ . SYNOPSIS
587+ Tests restoring a vldb with source zone redundant == false
588+ 1. Restore source vldb passing in zone redundant == true and backup storage redundancy == Zone,
589+ Verify restored vldb has zone redundant == true and backup storage redundancy == Zone
590+ 2. Restore source vldb with no parameters passed in,
591+ Verify restored vldb has zone redundant == false and backup storage redundancy == Geo
592+ #>
593+ function Test-CreateRestoreRegularAndZoneRedundantDatabaseWithSourceNotZoneRedundant ()
594+ {
595+ # Setup
596+ $location = Get-Location " Microsoft.Sql" " operations" " East US 2 EUAP"
597+ $rg = Create- ResourceGroupForTest $location
598+ $server = Create- ServerForTest $rg $location
599+ $sourceNonZRDatabaseName = Get-DatabaseName + " -non-zr"
600+
601+ $restoreTrueZRParamDatabaseName = $sourceNonZRDatabaseName + " -source-non-zr-restore-zr-true"
602+ $restoreNoZRParamDatabaseName = $sourceNonZRDatabaseName + " -source-non-zr-restore-no-zr-param"
603+
604+ try
605+ {
606+ # Create source vldb
607+ $sourceNonZRDatabase = New-AzSqlDatabase - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - DatabaseName $sourceNonZRDatabaseName `
608+ - VCore 2 - ComputeGeneration Gen5 - Edition Hyperscale - LicenseType " LicenseIncluded"
609+
610+ # Verify created source vldb has correct values (specifically zone redundancy == false and backup storage redundancy == Geo)
611+ Assert-AreEqual $sourceNonZRDatabase.ServerName $server.ServerName
612+ Assert-AreEqual $sourceNonZRDatabase.DatabaseName $sourceNonZRDatabaseName
613+ Assert-AreEqual $sourceNonZRDatabase.Edition " Hyperscale"
614+ Assert-AreEqual $sourceNonZRDatabase.CurrentBackupStorageRedundancy " Geo"
615+ Assert-NotNull $sourceNonZRDatabase.ZoneRedundant
616+ Assert-False { $sourceNonZRDatabase.ZoneRedundant }
617+
618+ # Get current time for PITR
619+ $time = Get-Date
620+ $utcTime = $Time.ToUniversalTime ()
621+ $pitrTime = $utcTime.ToString (" yyyy-MM-ddTHH:mm:ssZ" )
622+
623+ # Restore source vldb with zone redundancy == true and backup storage redundancy == Zone
624+ $restoreTrueZRParamDatabase = Restore-AzSqlDatabase - FromPointInTimeBackup - PointInTime $pitrTime - TargetDatabaseName $restoreTrueZRParamDatabaseName - ResourceGroupName $rg.ResourceGroupName `
625+ - ServerName $server.ServerName - ResourceId $sourceNonZRDatabase.ResourceId - VCore 2 - ComputeGeneration Gen5 - Edition Hyperscale - BackupStorageRedundancy " Zone" - ZoneRedundant
626+
627+ # Verify restored vldb has correct values (specifically zone redundancy == true and backup storage redundancy == Zone)
628+ Assert-AreEqual $restoreTrueZRParamDatabase.ServerName $server.ServerName
629+ Assert-AreEqual $restoreTrueZRParamDatabase.DatabaseName $restoreTrueZRParamDatabaseName
630+ Assert-AreEqual $restoreTrueZRParamDatabase.Edition " Hyperscale"
631+ Assert-AreEqual $restoreTrueZRParamDatabase.CurrentBackupStorageRedundancy " Zone"
632+ Assert-NotNull $restoreTrueZRParamDatabase.ZoneRedundant
633+ Assert-True { $restoreTrueZRParamDatabase.ZoneRedundant }
634+
635+ # Restore source vldb with no parameters passed in
636+ $restoreNoZRParamDatabase = Restore-AzSqlDatabase - FromPointInTimeBackup - PointInTime $pitrTime - TargetDatabaseName $restoreNoZRParamDatabaseName - ResourceGroupName $rg.ResourceGroupName `
637+ - ServerName $server.ServerName - ResourceId $sourceNonZRDatabase.ResourceId
638+
639+ # Verify restored vldb has correct values (specifically zone redundancy == false and backup storage redundancy == Geo)
640+ Assert-AreEqual $restoreNoZRParamDatabase.ServerName $server.ServerName
641+ Assert-AreEqual $restoreNoZRParamDatabase.DatabaseName $restoreNoZRParamDatabaseName
642+ Assert-AreEqual $restoreNoZRParamDatabase.Edition " Hyperscale"
643+ Assert-AreEqual $restoreNoZRParamDatabase.CurrentBackupStorageRedundancy " Geo"
644+ Assert-NotNull $restoreNoZRParamDatabase.ZoneRedundant
645+ Assert-False { $restoreNoZRParamDatabase.ZoneRedundant }
646+ }
647+ finally
648+ {
649+ Remove-ResourceGroupForTest $rg
650+ }
651+ }
652+
653+ <#
654+ . SYNOPSIS
655+ Tests restoring a vldb with source zone redundant == true and backup storage redundancy == Zone
656+ 1. Restore source vldb passing in zone redundant == false and backup storage redundancy == Zone,
657+ Verify restored vldb has zone redundant == false and backup storage redundancy == Zone
658+ 2. Restore source vldb with no parameters passed in,
659+ Verify restored vldb has zone redundant == true and backup storage redundancy == Zone
660+ #>
661+ function Test-CreateRestoreRegularAndZoneRedundantDatabaseWithSourceZoneRedundant ()
662+ {
663+ # Setup
664+ $location = Get-Location " Microsoft.Sql" " operations" " East US 2 EUAP"
665+ $rg = Create- ResourceGroupForTest $location
666+ $server = Create- ServerForTest $rg $location
667+ $sourceZRDatabaseName = Get-DatabaseName + " -zr"
668+
669+ $restoreFalseZRParamDatabaseName = $sourceZRDatabaseName + " -source-zr-restore-zr-false"
670+ $restoreNoZRParamDatabaseName = $sourceZRDatabaseName + " -source-zr-restore-no-zr-param"
671+
672+ try
673+ {
674+ # Create source vldb with zone redundancy == true and backup storage redundancy == Zone
675+ $sourceZRDatabase = New-AzSqlDatabase - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - DatabaseName $sourceZRDatabaseName `
676+ - VCore 2 - ComputeGeneration Gen5 - Edition Hyperscale - LicenseType " LicenseIncluded" - BackupStorageRedundancy " Zone" - ZoneRedundant
677+
678+ # Verify created source vldb has correct values (specifically zone redundancy == true and backup storage redundancy == Zone)
679+ Assert-AreEqual $sourceZRDatabase.ServerName $server.ServerName
680+ Assert-AreEqual $sourceZRDatabase.DatabaseName $sourceZRDatabaseName
681+ Assert-AreEqual $sourceZRDatabase.Edition " Hyperscale"
682+ Assert-AreEqual $sourceZRDatabase.CurrentBackupStorageRedundancy " Zone"
683+ Assert-NotNull $sourceZRDatabase.ZoneRedundant
684+ Assert-True { $sourceZRDatabase.ZoneRedundant }
685+
686+ # Get current time for PITR
687+ $time = Get-Date
688+ $utcTime = $Time.ToUniversalTime ()
689+ $pitrTime = $utcTime.ToString (" yyyy-MM-ddTHH:mm:ssZ" )
690+
691+ # Copy source vldb with zone redundancy == false
692+ $restoreFalseZRParamDatabase = Restore-AzSqlDatabase - FromPointInTimeBackup - PointInTime $pitrTime - TargetDatabaseName $restoreFalseZRParamDatabaseName - ResourceGroupName $rg.ResourceGroupName `
693+ - ServerName $server.ServerName - ResourceId $sourceZRDatabase.ResourceId - VCore 2 - ComputeGeneration Gen5 - Edition Hyperscale - ZoneRedundant:$false
694+
695+ # Verify restored vldb has correct values (specifically zone redundancy == false and backup storage redundancy == Zone)
696+ Assert-AreEqual $restoreFalseZRParamDatabase.ServerName $server.ServerName
697+ Assert-AreEqual $restoreFalseZRParamDatabase.DatabaseName $restoreFalseZRParamDatabaseName
698+ Assert-AreEqual $restoreFalseZRParamDatabase.Edition " Hyperscale"
699+ Assert-AreEqual $restoreFalseZRParamDatabase.CurrentBackupStorageRedundancy " Zone"
700+ Assert-NotNull $restoreFalseZRParamDatabase.ZoneRedundant
701+ Assert-False { $restoreFalseZRParamDatabase.ZoneRedundant }
702+
703+ # Restore source vldb with no parameters passed in
704+ $restoreNoZRParamDatabase = Restore-AzSqlDatabase - FromPointInTimeBackup - PointInTime $pitrTime - TargetDatabaseName $restoreNoZRParamDatabaseName - ResourceGroupName $rg.ResourceGroupName `
705+ - ServerName $server.ServerName - ResourceId $sourceZRDatabase.ResourceId
706+
707+ # Verify restored vldb has correct values (specifically zone redundancy == true and backup storage redundancy == Zone)
708+ Assert-AreEqual $restoreNoZRParamDatabase.ServerName $server.ServerName
709+ Assert-AreEqual $restoreNoZRParamDatabase.DatabaseName $restoreNoZRParamDatabaseName
710+ Assert-AreEqual $restoreNoZRParamDatabase.Edition " Hyperscale"
711+ Assert-AreEqual $restoreNoZRParamDatabase.CurrentBackupStorageRedundancy " Zone"
712+ Assert-NotNull $restoreNoZRParamDatabase.ZoneRedundant
713+ Assert-True { $restoreNoZRParamDatabase.ZoneRedundant }
714+ }
715+ finally
716+ {
717+ Remove-ResourceGroupForTest $rg
718+ }
583719}
0 commit comments