Skip to content

Commit a76a24c

Browse files
authored
FIx review commenrts
1 parent 9ef342a commit a76a24c

File tree

6 files changed

+69
-52
lines changed

6 files changed

+69
-52
lines changed

source/Public/New-SqlDscDatabase.ps1

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,14 @@ function New-SqlDscDatabase
9696
$Refresh
9797
)
9898

99+
begin
100+
{
101+
if ($Force.IsPresent -and -not $Confirm)
102+
{
103+
$ConfirmPreference = 'None'
104+
}
105+
}
106+
99107
process
100108
{
101109
if ($Refresh.IsPresent)
@@ -131,7 +139,7 @@ function New-SqlDscDatabase
131139
if ($CompatibilityLevel -notin $supportedCompatibilityLevels.$($ServerObject.VersionMajor))
132140
{
133141
$errorMessage = $script:localizedData.Database_InvalidCompatibilityLevel -f $CompatibilityLevel, $ServerObject.InstanceName
134-
New-ObjectNotFoundException -Message $errorMessage
142+
New-InvalidArgumentException -ArgumentName 'CompatibilityLevel' -Message $errorMessage
135143
}
136144
}
137145

@@ -141,15 +149,15 @@ function New-SqlDscDatabase
141149
if ($Collation -notin $ServerObject.EnumCollations().Name)
142150
{
143151
$errorMessage = $script:localizedData.Database_InvalidCollation -f $Collation, $ServerObject.InstanceName
144-
New-ObjectNotFoundException -Message $errorMessage
152+
New-InvalidArgumentException -ArgumentName 'Collation' -Message $errorMessage
145153
}
146154
}
147155

148156
$verboseDescriptionMessage = $script:localizedData.Database_Create_ShouldProcessVerboseDescription -f $Name, $ServerObject.InstanceName
149157
$verboseWarningMessage = $script:localizedData.Database_Create_ShouldProcessVerboseWarning -f $Name
150158
$captionMessage = $script:localizedData.Database_Create_ShouldProcessCaption
151159

152-
if ($Force.IsPresent -or $PSCmdlet.ShouldProcess($verboseDescriptionMessage, $verboseWarningMessage, $captionMessage))
160+
if ($PSCmdlet.ShouldProcess($verboseDescriptionMessage, $verboseWarningMessage, $captionMessage))
153161
{
154162
try
155163
{

tests/Integration/Commands/Get-SqlDscDatabase.Integration.Tests.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ BeforeAll {
2929
Import-Module -Name $script:dscModuleName
3030
}
3131

32-
Describe 'Get-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
32+
Describe 'Get-SqlDscDatabase' -Tag @('Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
3333
BeforeAll {
3434
# Starting the named instance SQL Server service prior to running tests.
3535
Start-Service -Name 'MSSQL$DSCSQLTEST' -Verbose -ErrorAction 'Stop'
@@ -85,7 +85,7 @@ Describe 'Get-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017
8585

8686
It 'Should throw error when getting a non-existent database' {
8787
{ Get-SqlDscDatabase -ServerObject $script:serverObject -Name 'NonExistentDatabase' -ErrorAction 'Stop' } |
88-
Should -Throw -ExpectedMessage "*not found*"
88+
Should -Throw
8989
}
9090

9191
It 'Should return nothing when getting a non-existent database with SilentlyContinue' {
@@ -103,4 +103,4 @@ Describe 'Get-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017
103103
$result.Name | Should -Contain 'master'
104104
}
105105
}
106-
}
106+
}

tests/Integration/Commands/New-SqlDscDatabase.Integration.Tests.ps1

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ BeforeAll {
2929
Import-Module -Name $script:dscModuleName
3030
}
3131

32-
Describe 'New-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
32+
Describe 'New-SqlDscDatabase' -Tag @('Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
3333
BeforeAll {
3434
# Starting the named instance SQL Server service prior to running tests.
3535
Start-Service -Name 'MSSQL$DSCSQLTEST' -Verbose -ErrorAction 'Stop'
@@ -42,20 +42,23 @@ Describe 'New-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017
4242

4343
$script:mockSqlAdminCredential = [System.Management.Automation.PSCredential]::new($mockSqlAdministratorUserName, $mockSqlAdministratorPassword)
4444

45-
$script:serverObject = Connect-SqlDscDatabaseEngine -InstanceName $script:mockInstanceName -Credential $script:mockSqlAdminCredential
45+
$script:serverObject = Connect-SqlDscDatabaseEngine -InstanceName $script:mockInstanceName -Credential $script:mockSqlAdminCredential -ErrorAction Stop
4646

47-
# Test database names
47+
# Test database names
4848
$script:testDatabaseName = 'SqlDscTestDatabase_' + (Get-Random)
4949
$script:testDatabaseNameWithProperties = 'SqlDscTestDatabaseWithProps_' + (Get-Random)
5050
}
5151

5252
AfterAll {
5353
# Clean up test databases
5454
$testDatabasesToRemove = @($script:testDatabaseName, $script:testDatabaseNameWithProperties)
55-
56-
foreach ($dbName in $testDatabasesToRemove) {
55+
56+
foreach ($dbName in $testDatabasesToRemove)
57+
{
5758
$existingDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $dbName -ErrorAction 'SilentlyContinue'
58-
if ($existingDb) {
59+
60+
if ($existingDb)
61+
{
5962
Remove-SqlDscDatabase -DatabaseObject $existingDb -Force
6063
}
6164
}
@@ -68,53 +71,56 @@ Describe 'New-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017
6871

6972
Context 'When creating a new database' {
7073
It 'Should create a database successfully with minimal parameters' {
71-
$result = New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -Force
74+
$result = New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -Force -ErrorAction Stop
7275

7376
$result | Should -Not -BeNullOrEmpty
7477
$result.Name | Should -Be $script:testDatabaseName
7578
$result | Should -BeOfType 'Microsoft.SqlServer.Management.Smo.Database'
7679

7780
# Verify the database exists
78-
$createdDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName
81+
$createdDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -ErrorAction Stop
7982
$createdDb | Should -Not -BeNullOrEmpty
8083
}
8184

8285
It 'Should create a database with specified properties' {
83-
$result = New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameWithProperties -RecoveryModel 'Simple' -Force
86+
$result = New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameWithProperties -RecoveryModel 'Simple' -Force -ErrorAction Stop
8487

8588
$result | Should -Not -BeNullOrEmpty
8689
$result.Name | Should -Be $script:testDatabaseNameWithProperties
8790
$result.RecoveryModel | Should -Be 'Simple'
8891

8992
# Verify the database exists with correct properties
90-
$createdDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameWithProperties
93+
$createdDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameWithProperties -ErrorAction Stop
9194
$createdDb | Should -Not -BeNullOrEmpty
9295
$createdDb.RecoveryModel | Should -Be 'Simple'
9396
}
9497

9598
It 'Should throw error when trying to create a database that already exists' {
96-
{ New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -Force } |
97-
Should -Throw -ExpectedMessage "*already exists*"
99+
{ New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -Force -ErrorAction Stop } |
100+
Should -Throw
98101
}
99102
}
100103

101104
Context 'When using the Refresh parameter' {
102105
It 'Should refresh the database collection before creating' {
103106
$uniqueName = 'SqlDscTestRefresh_' + (Get-Random)
104-
105-
try {
106-
$result = New-SqlDscDatabase -ServerObject $script:serverObject -Name $uniqueName -Refresh -Force
107+
108+
try
109+
{
110+
$result = New-SqlDscDatabase -ServerObject $script:serverObject -Name $uniqueName -Refresh -Force -ErrorAction Stop
107111

108112
$result | Should -Not -BeNullOrEmpty
109113
$result.Name | Should -Be $uniqueName
110114
}
111-
finally {
115+
finally
116+
{
112117
# Clean up
113118
$dbToRemove = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $uniqueName -ErrorAction 'SilentlyContinue'
114-
if ($dbToRemove) {
119+
if ($dbToRemove)
120+
{
115121
Remove-SqlDscDatabase -DatabaseObject $dbToRemove -Force
116122
}
117123
}
118124
}
119125
}
120-
}
126+
}

tests/Integration/Commands/Remove-SqlDscDatabase.Integration.Tests.ps1

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ BeforeAll {
2929
Import-Module -Name $script:dscModuleName
3030
}
3131

32-
Describe 'Remove-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
32+
Describe 'Remove-SqlDscDatabase' -Tag @('Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
3333
BeforeAll {
3434
# Starting the named instance SQL Server service prior to running tests.
3535
Start-Service -Name 'MSSQL$DSCSQLTEST' -Verbose -ErrorAction 'Stop'
@@ -42,7 +42,7 @@ Describe 'Remove-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2
4242

4343
$script:mockSqlAdminCredential = [System.Management.Automation.PSCredential]::new($mockSqlAdministratorUserName, $mockSqlAdministratorPassword)
4444

45-
$script:serverObject = Connect-SqlDscDatabaseEngine -InstanceName $script:mockInstanceName -Credential $script:mockSqlAdminCredential
45+
$script:serverObject = Connect-SqlDscDatabaseEngine -InstanceName $script:mockInstanceName -Credential $script:mockSqlAdminCredential -ErrorAction Stop
4646
}
4747

4848
AfterAll {
@@ -56,53 +56,53 @@ Describe 'Remove-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2
5656
BeforeEach {
5757
# Create a test database for each test
5858
$script:testDatabaseName = 'SqlDscTestRemoveDatabase_' + (Get-Random)
59-
New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -Force
59+
New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -Force -ErrorAction Stop
6060
}
6161

6262
It 'Should remove a database successfully' {
6363
# Verify database exists before removal
64-
$existingDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName
64+
$existingDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -ErrorAction Stop
6565
$existingDb | Should -Not -BeNullOrEmpty
6666

6767
# Remove the database
68-
Remove-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -Force
68+
Remove-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -Force -ErrorAction Stop
6969

7070
# Verify database no longer exists
7171
$removedDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseName -ErrorAction 'SilentlyContinue'
7272
$removedDb | Should -BeNullOrEmpty
7373
}
7474

7575
It 'Should throw error when trying to remove non-existent database' {
76-
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'NonExistentDatabase' -Force } |
77-
Should -Throw -ExpectedMessage "*not found*"
76+
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'NonExistentDatabase' -Force -ErrorAction Stop } |
77+
Should -Throw
7878
}
7979
}
8080

8181
Context 'When removing a database using DatabaseObject parameter set' {
8282
BeforeEach {
8383
# Create a test database for each test
8484
$script:testDatabaseNameForObject = 'SqlDscTestRemoveDatabaseObj_' + (Get-Random)
85-
New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameForObject -Force
85+
New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameForObject -Force -ErrorAction Stop
8686
}
8787

8888
It 'Should remove a database using database object' {
89-
$databaseObject = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameForObject
89+
$databaseObject = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameForObject -ErrorAction Stop
9090
$databaseObject | Should -Not -BeNullOrEmpty
9191

9292
# Remove the database using database object
93-
Remove-SqlDscDatabase -DatabaseObject $databaseObject -Force
93+
Remove-SqlDscDatabase -DatabaseObject $databaseObject -Force -ErrorAction Stop
9494

9595
# Verify database no longer exists
9696
$removedDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameForObject -ErrorAction 'SilentlyContinue'
9797
$removedDb | Should -BeNullOrEmpty
9898
}
9999

100100
It 'Should support pipeline input with database object' {
101-
$databaseObject = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameForObject
101+
$databaseObject = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameForObject -ErrorAction Stop
102102
$databaseObject | Should -Not -BeNullOrEmpty
103103

104104
# Remove the database using pipeline
105-
$databaseObject | Remove-SqlDscDatabase -Force
105+
$databaseObject | Remove-SqlDscDatabase -Force -ErrorAction Stop
106106

107107
# Verify database no longer exists
108108
$removedDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameForObject -ErrorAction 'SilentlyContinue'
@@ -112,40 +112,40 @@ Describe 'Remove-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2
112112

113113
Context 'When attempting to remove system databases' {
114114
It 'Should throw error when trying to remove master database' {
115-
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'master' -Force } |
116-
Should -Throw -ExpectedMessage "*system database*"
115+
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'master' -Force -ErrorAction Stop } |
116+
Should -Throw
117117
}
118118

119119
It 'Should throw error when trying to remove model database' {
120-
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'model' -Force } |
121-
Should -Throw -ExpectedMessage "*system database*"
120+
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'model' -Force -ErrorAction Stop } |
121+
Should -Throw
122122
}
123123

124124
It 'Should throw error when trying to remove msdb database' {
125-
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'msdb' -Force } |
126-
Should -Throw -ExpectedMessage "*system database*"
125+
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'msdb' -Force -ErrorAction Stop } |
126+
Should -Throw
127127
}
128128

129129
It 'Should throw error when trying to remove tempdb database' {
130-
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'tempdb' -Force } |
131-
Should -Throw -ExpectedMessage "*system database*"
130+
{ Remove-SqlDscDatabase -ServerObject $script:serverObject -Name 'tempdb' -Force -ErrorAction Stop } |
131+
Should -Throw
132132
}
133133
}
134134

135135
Context 'When using the Refresh parameter' {
136136
BeforeEach {
137137
# Create a test database for each test
138138
$script:testDatabaseNameRefresh = 'SqlDscTestRemoveDatabaseRefresh_' + (Get-Random)
139-
New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameRefresh -Force
139+
New-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameRefresh -Force -ErrorAction Stop
140140
}
141141

142142
It 'Should refresh the database collection before removing' {
143143
# Remove the database with refresh
144-
Remove-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameRefresh -Refresh -Force
144+
Remove-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameRefresh -Refresh -Force -ErrorAction Stop
145145

146146
# Verify database no longer exists
147147
$removedDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $script:testDatabaseNameRefresh -ErrorAction 'SilentlyContinue'
148148
$removedDb | Should -BeNullOrEmpty
149149
}
150150
}
151-
}
151+
}

tests/Integration/Commands/Set-SqlDscDatabase.Integration.Tests.ps1

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ BeforeAll {
2929
Import-Module -Name $script:dscModuleName
3030
}
3131

32-
Describe 'Set-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
32+
Describe 'Set-SqlDscDatabase' -Tag @('Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
3333
BeforeAll {
3434
# Starting the named instance SQL Server service prior to running tests.
3535
Start-Service -Name 'MSSQL$DSCSQLTEST' -Verbose -ErrorAction 'Stop'
@@ -57,9 +57,12 @@ Describe 'Set-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017
5757
# Clean up test databases
5858
$testDatabasesToRemove = @($script:testDatabaseName, $script:testDatabaseNameForObject)
5959

60-
foreach ($dbName in $testDatabasesToRemove) {
60+
foreach ($dbName in $testDatabasesToRemove)
61+
{
6162
$existingDb = Get-SqlDscDatabase -ServerObject $script:serverObject -Name $dbName -ErrorAction 'SilentlyContinue'
62-
if ($existingDb) {
63+
64+
if ($existingDb)
65+
{
6366
Remove-SqlDscDatabase -DatabaseObject $existingDb -Force
6467
}
6568
}

tests/Integration/Commands/Test-SqlDscDatabase.Integration.Tests.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ BeforeDiscovery {
2626
BeforeAll {
2727
$script:dscModuleName = 'SqlServerDsc'
2828

29-
Import-Module -Name $script:dscModuleName
29+
Import-Module -Name $script:dscModuleName -Force -ErrorAction 'Stop'
3030
}
3131

3232
Describe 'Test-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL2017', 'Integration_SQL2019', 'Integration_SQL2022') {
@@ -101,4 +101,4 @@ Describe 'Test-SqlDscDatabase' -Tag @('Integration_SQL2016', 'Integration_SQL201
101101
$result | Should -BeTrue
102102
}
103103
}
104-
}
104+
}

0 commit comments

Comments
 (0)