@@ -659,3 +659,146 @@ function Test-OutboundFirewallRulesCRUD
659
659
Remove-ResourceGroupForTest $rg
660
660
}
661
661
}
662
+
663
+ <#
664
+ . SYNOPSIS
665
+ Tests creating a server with a default soft delete retention enabled
666
+ #>
667
+ function Test-CreateServerWithDefaultSoftDeleteRetentionEnabled
668
+ {
669
+ # Setup
670
+ $rg = Create- ResourceGroupForTest " eastasia"
671
+
672
+ $serverName = Get-ServerName
673
+ $version = " 12.0"
674
+ $serverLogin = " testusername"
675
+ $serverPassword = " t357ingP@s5w0rd!"
676
+ $credentials = new-object System.Management.Automation.PSCredential($serverLogin , ($serverPassword | ConvertTo-SecureString - asPlainText - Force))
677
+ $enableSoftDeleteRetention = $true
678
+ $defaultRetentionDays = 7
679
+
680
+ try
681
+ {
682
+ # With all parameters
683
+ $job = New-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $serverName `
684
+ - Location $rg.Location - ServerVersion $version - SqlAdministratorCredentials $credentials - EnableSoftDeleteRetention $enableSoftDeleteRetention - AsJob
685
+ $job | Wait-Job
686
+ $server1 = $job.Output
687
+
688
+ Assert-AreEqual $server1.ServerName $serverName
689
+ Assert-AreEqual $server1.ServerVersion $version
690
+ Assert-AreEqual $server1.SqlAdministratorLogin $serverLogin
691
+ Assert-StartsWith ($server1.ServerName + " ." ) $server1.FullyQualifiedDomainName
692
+ Assert-AreEqual $server1.SoftDeleteRetentionDays $defaultRetentionDays
693
+ }
694
+ finally
695
+ {
696
+ Set-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $serverName - SoftDeleteRetentionDays 0
697
+ Remove-ResourceGroupForTest $rg
698
+ }
699
+ }
700
+
701
+ <#
702
+ . SYNOPSIS
703
+ Tests creating a server with custom soft delete retention days
704
+ #>
705
+ function Test-CreateServerWithCustomSoftDeleteRetentionEnabled
706
+ {
707
+ # Setup
708
+ $rg = Create- ResourceGroupForTest " eastasia"
709
+
710
+ $serverName = Get-ServerName
711
+ $version = " 12.0"
712
+ $serverLogin = " testusername"
713
+ $serverPassword = " t357ingP@s5w0rd!"
714
+ $credentials = new-object System.Management.Automation.PSCredential($serverLogin , ($serverPassword | ConvertTo-SecureString - asPlainText - Force))
715
+ $enableSoftDeleteRetention = $true
716
+ $customRetentionDays = 30
717
+
718
+ try
719
+ {
720
+ # With all parameters
721
+ $job = New-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $serverName `
722
+ - Location $rg.Location - ServerVersion $version - SqlAdministratorCredentials $credentials - SoftDeleteRetentionDays $customRetentionDays - EnableSoftDeleteRetention $enableSoftDeleteRetention - AsJob
723
+ $job | Wait-Job
724
+ $server1 = $job.Output
725
+
726
+ Assert-AreEqual $server1.ServerName $serverName
727
+ Assert-AreEqual $server1.ServerVersion $version
728
+ Assert-AreEqual $server1.SqlAdministratorLogin $serverLogin
729
+ Assert-StartsWith ($server1.ServerName + " ." ) $server1.FullyQualifiedDomainName
730
+ Assert-AreEqual $server1.SoftDeleteRetentionDays $customRetentionDays
731
+ }
732
+ finally
733
+ {
734
+ Set-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $serverName - SoftDeleteRetentionDays 0
735
+ Remove-ResourceGroupForTest $rg
736
+ }
737
+ }
738
+
739
+ <#
740
+ . SYNOPSIS
741
+ Tests updating a server with an default and custom soft delete retention enabled
742
+ #>
743
+ function Test-UpdateServerWithSoftDeleteRetentionEnabled
744
+ {
745
+ # Setup
746
+ $rg = Create- ResourceGroupForTest " eastasia"
747
+ $server = Create- ServerForTest $rg $rg.Location
748
+ $enableSoftDeleteRetention = $true
749
+ $defaultRetentionDays = 7
750
+ $customRetentionDays = 35
751
+
752
+ try
753
+ {
754
+ # Test using parameters
755
+ $server1 = Set-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - EnableSoftDeleteRetention $enableSoftDeleteRetention
756
+
757
+ Assert-AreEqual $server1.ServerName $server.ServerName
758
+ Assert-AreEqual $server1.ServerVersion $server.ServerVersion
759
+ Assert-StartsWith ($server1.ServerName + " ." ) $server1.FullyQualifiedDomainName
760
+ Assert-AreEqual $server1.SoftDeleteRetentionDays $defaultRetentionDays
761
+
762
+ # Test piping
763
+ $server2 = $server | Set-AzSqlServer - EnableSoftDeleteRetention $enableSoftDeleteRetention - SoftDeleteRetentionDays $customRetentionDays
764
+ Assert-AreEqual $server2.ServerName $server.ServerName
765
+ Assert-AreEqual $server2.ServerVersion $server.ServerVersion
766
+ Assert-StartsWith ($server2.ServerName + " ." ) $server2.FullyQualifiedDomainName
767
+ Assert-AreEqual $server2.SoftDeleteRetentionDays $customRetentionDays
768
+ }
769
+ finally
770
+ {
771
+ Set-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - SoftDeleteRetentionDays 0
772
+ Remove-ResourceGroupForTest $rg
773
+ }
774
+ }
775
+
776
+ <#
777
+ . SYNOPSIS
778
+ Tests restoring a deleted server subjected to prior soft delete retention enabled.
779
+ #>
780
+ function Test-RestoreDeletedServer
781
+ {
782
+ # Setup
783
+ $rg = Create- ResourceGroupForTest " eastasia"
784
+ $server = Create- ServerForTest $rg $rg.Location
785
+
786
+ try
787
+ {
788
+ # Set EnableSoftDeleteRetention to true and delete the server
789
+ Set-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - EnableSoftDeleteRetention $true
790
+ Remove-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - Force
791
+
792
+ # Test with parameters
793
+ Restore-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - Location $rg.Location
794
+
795
+ $all = Get-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName
796
+ Assert-AreEqual $all.Count 1
797
+
798
+ }
799
+ finally
800
+ {
801
+ Set-AzSqlServer - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - SoftDeleteRetentionDays 0
802
+ Remove-ResourceGroupForTest $rg
803
+ }
804
+ }
0 commit comments