Skip to content

Commit dd5a18c

Browse files
Copilotjohlju
andcommitted
Remove Write-Verbose mocks and fix -Not -Throw patterns in database command tests
Co-authored-by: johlju <7189721+johlju@users.noreply.github.com>
1 parent fcffe42 commit dd5a18c

File tree

5 files changed

+7
-62
lines changed

5 files changed

+7
-62
lines changed

tests/Unit/Public/Get-SqlDscDatabase.Tests.ps1

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ Describe 'Get-SqlDscDatabase' -Tag 'Public' {
6666
}
6767

6868
It 'Should return all databases when no Name parameter is specified' {
69-
Mock -CommandName 'Write-Verbose'
70-
7169
$result = Get-SqlDscDatabase -ServerObject $mockServerObject
7270

7371
$result | Should -HaveCount 2
@@ -76,8 +74,6 @@ Describe 'Get-SqlDscDatabase' -Tag 'Public' {
7674
}
7775

7876
It 'Should call Refresh when Refresh parameter is specified' {
79-
Mock -CommandName 'Write-Verbose'
80-
8177
$script:refreshCalled = $false
8278
$mockServerObjectWithRefresh = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.Server'
8379
$mockServerObjectWithRefresh | Add-Member -MemberType 'NoteProperty' -Name 'InstanceName' -Value 'TestInstance' -Force
@@ -112,17 +108,13 @@ Describe 'Get-SqlDscDatabase' -Tag 'Public' {
112108
}
113109

114110
It 'Should return the specified database when it exists' {
115-
Mock -CommandName 'Write-Verbose'
116-
117111
$result = Get-SqlDscDatabase -ServerObject $mockServerObject -Name 'master'
118112

119113
$result | Should -Not -BeNullOrEmpty
120114
$result.Name | Should -Be 'master'
121115
}
122116

123117
It 'Should throw the correct error when the specified database does not exist' {
124-
Mock -CommandName 'Write-Verbose'
125-
126118
# Test the exact error message first
127119
$expectedMessage = 'Database ''NonExistentDatabase'' was not found.'
128120

@@ -131,8 +123,6 @@ Describe 'Get-SqlDscDatabase' -Tag 'Public' {
131123
}
132124

133125
It 'Should return empty result when ignoring the error' {
134-
Mock -CommandName 'Write-Verbose'
135-
136126
$result = Get-SqlDscDatabase -ServerObject $mockServerObject -Name 'NonExistentDatabase' -ErrorAction 'SilentlyContinue'
137127

138128
$result | Should -BeNullOrEmpty

tests/Unit/Public/New-SqlDscDatabase.Tests.ps1

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,6 @@ Describe 'New-SqlDscDatabase' -Tag 'Public' {
8585
}
8686

8787
It 'Should create a database successfully with minimal parameters' {
88-
Mock -CommandName 'Write-Verbose'
89-
9088
$result = New-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Force
9189

9290
$result | Should -Not -BeNullOrEmpty
@@ -95,8 +93,6 @@ Describe 'New-SqlDscDatabase' -Tag 'Public' {
9593
}
9694

9795
It 'Should create a database with specified properties' {
98-
Mock -CommandName 'Write-Verbose'
99-
10096
$result = New-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase2' -Collation 'SQL_Latin1_General_CP1_CI_AS' -RecoveryModel 'Simple' -CompatibilityLevel 'Version150' -OwnerName 'sa' -Force
10197

10298
$result | Should -Not -BeNullOrEmpty
@@ -137,15 +133,11 @@ Describe 'New-SqlDscDatabase' -Tag 'Public' {
137133
}
138134

139135
It 'Should throw error when CompatibilityLevel is invalid for SQL Server version' {
140-
Mock -CommandName 'Write-Verbose'
141-
142136
{ New-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDB' -CompatibilityLevel 'Version80' -Force } |
143137
Should -Throw -ExpectedMessage '*not a valid compatibility level*'
144138
}
145139

146140
It 'Should throw error when Collation is invalid' {
147-
Mock -CommandName 'Write-Verbose'
148-
149141
{ New-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDB' -Collation 'InvalidCollation' -Force } |
150142
Should -Throw -ExpectedMessage '*not a valid collation*'
151143
}

tests/Unit/Public/Remove-SqlDscDatabase.Tests.ps1

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,21 +76,15 @@ Describe 'Remove-SqlDscDatabase' -Tag 'Public' {
7676
}
7777

7878
It 'Should remove database successfully' {
79-
Mock -CommandName 'Write-Verbose'
80-
81-
{ Remove-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Force } | Should -Not -Throw
79+
$null = Remove-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Force
8280
}
8381

8482
It 'Should throw error when database does not exist' {
85-
Mock -CommandName 'Write-Verbose'
86-
8783
{ Remove-SqlDscDatabase -ServerObject $mockServerObject -Name 'NonExistentDatabase' -Force } |
8884
Should -Throw -ExpectedMessage '*not found*'
8985
}
9086

9187
It 'Should throw error when trying to remove system database' {
92-
Mock -CommandName 'Write-Verbose'
93-
9488
{ Remove-SqlDscDatabase -ServerObject $mockServerObject -Name 'master' -Force } |
9589
Should -Throw -ExpectedMessage '*Cannot remove system database*'
9690
}
@@ -111,9 +105,7 @@ Describe 'Remove-SqlDscDatabase' -Tag 'Public' {
111105
}
112106

113107
It 'Should remove database successfully using database object' {
114-
Mock -CommandName 'Write-Verbose'
115-
116-
{ Remove-SqlDscDatabase -DatabaseObject $mockDatabaseObject -Force } | Should -Not -Throw
108+
$null = Remove-SqlDscDatabase -DatabaseObject $mockDatabaseObject -Force
117109
}
118110

119111
It 'Should throw error when trying to remove system database using DatabaseObject' {
@@ -125,8 +117,6 @@ Describe 'Remove-SqlDscDatabase' -Tag 'Public' {
125117
return $mockParent
126118
} -Force
127119

128-
Mock -CommandName 'Write-Verbose'
129-
130120
{ Remove-SqlDscDatabase -DatabaseObject $mockSystemDatabaseObject -Force } |
131121
Should -Throw -ExpectedMessage '*Cannot remove system database*'
132122
}

tests/Unit/Public/Set-SqlDscDatabase.Tests.ps1

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -96,23 +96,17 @@ Describe 'Set-SqlDscDatabase' -Tag 'Public' {
9696
}
9797

9898
It 'Should modify database properties successfully' {
99-
Mock -CommandName 'Write-Verbose'
100-
101-
{ Set-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -RecoveryModel 'Simple' -Force } | Should -Not -Throw
99+
$null = Set-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -RecoveryModel 'Simple' -Force
102100
}
103101

104102
It 'Should return database object when PassThru is specified' {
105-
Mock -CommandName 'Write-Verbose'
106-
107103
$result = Set-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -RecoveryModel 'Simple' -Force -PassThru
108104

109105
$result | Should -Not -BeNullOrEmpty
110106
$result.Name | Should -Be 'TestDatabase'
111107
}
112108

113109
It 'Should throw error when database does not exist' {
114-
Mock -CommandName 'Write-Verbose'
115-
116110
{ Set-SqlDscDatabase -ServerObject $mockServerObject -Name 'NonExistentDatabase' -RecoveryModel 'Simple' -Force } |
117111
Should -Throw -ExpectedMessage '*not found*'
118112
}
@@ -147,9 +141,7 @@ Describe 'Set-SqlDscDatabase' -Tag 'Public' {
147141
}
148142

149143
It 'Should modify database using database object' {
150-
Mock -CommandName 'Write-Verbose'
151-
152-
{ Set-SqlDscDatabase -DatabaseObject $mockDatabaseObject -RecoveryModel 'Simple' -Force } | Should -Not -Throw
144+
$null = Set-SqlDscDatabase -DatabaseObject $mockDatabaseObject -RecoveryModel 'Simple' -Force
153145
}
154146
}
155147

@@ -173,15 +165,11 @@ Describe 'Set-SqlDscDatabase' -Tag 'Public' {
173165
}
174166

175167
It 'Should throw error when CompatibilityLevel is invalid for SQL Server version' {
176-
Mock -CommandName 'Write-Verbose'
177-
178168
{ Set-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -CompatibilityLevel 'Version80' -Force } |
179169
Should -Throw -ExpectedMessage '*not a valid compatibility level*'
180170
}
181171

182172
It 'Should allow valid CompatibilityLevel for SQL Server version' {
183-
Mock -CommandName 'Write-Verbose'
184-
185173
# We only test that the validation passes, not the actual property setting
186174
$mockServerObjectWithValidDb = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.Server'
187175
$mockServerObjectWithValidDb | Add-Member -MemberType 'NoteProperty' -Name 'InstanceName' -Value 'TestInstance' -Force
@@ -203,7 +191,7 @@ Describe 'Set-SqlDscDatabase' -Tag 'Public' {
203191
)
204192
} -Force
205193

206-
{ Set-SqlDscDatabase -ServerObject $mockServerObjectWithValidDb -Name 'TestDatabase' -CompatibilityLevel 'Version150' -Force } | Should -Not -Throw
194+
$null = Set-SqlDscDatabase -ServerObject $mockServerObjectWithValidDb -Name 'TestDatabase' -CompatibilityLevel 'Version150' -Force
207195
}
208196
}
209197

@@ -231,15 +219,11 @@ Describe 'Set-SqlDscDatabase' -Tag 'Public' {
231219
}
232220

233221
It 'Should throw error when Collation is invalid' {
234-
Mock -CommandName 'Write-Verbose'
235-
236222
{ Set-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Collation 'InvalidCollation' -Force } |
237223
Should -Throw -ExpectedMessage '*not a valid collation*'
238224
}
239225

240226
It 'Should allow valid Collation' {
241-
Mock -CommandName 'Write-Verbose'
242-
243227
$mockServerObjectWithValidDb = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.Server'
244228
$mockServerObjectWithValidDb | Add-Member -MemberType 'NoteProperty' -Name 'InstanceName' -Value 'TestInstance' -Force
245229
$mockServerObjectWithValidDb | Add-Member -MemberType 'NoteProperty' -Name 'VersionMajor' -Value 15 -Force
@@ -261,7 +245,7 @@ Describe 'Set-SqlDscDatabase' -Tag 'Public' {
261245
)
262246
} -Force
263247

264-
{ Set-SqlDscDatabase -ServerObject $mockServerObjectWithValidDb -Name 'TestDatabase' -Collation 'SQL_Latin1_General_CP1_CI_AS' -Force } | Should -Not -Throw
248+
$null = Set-SqlDscDatabase -ServerObject $mockServerObjectWithValidDb -Name 'TestDatabase' -Collation 'SQL_Latin1_General_CP1_CI_AS' -Force
265249
}
266250
}
267251

@@ -290,10 +274,8 @@ Describe 'Set-SqlDscDatabase' -Tag 'Public' {
290274
}
291275

292276
It 'Should call SetOwner when OwnerName parameter is specified' {
293-
Mock -CommandName 'Write-Verbose'
294-
295277
# This tests that the OwnerName parameter usage path (line 202) is covered
296-
{ Set-SqlDscDatabase -DatabaseObject $mockDatabaseObject -OwnerName 'sa' -Force } | Should -Not -Throw
278+
$null = Set-SqlDscDatabase -DatabaseObject $mockDatabaseObject -OwnerName 'sa' -Force
297279
}
298280
}
299281

tests/Unit/Public/Test-SqlDscDatabase.Tests.ps1

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,31 +71,27 @@ Describe 'Test-SqlDscDatabase' -Tag 'Public' {
7171
}
7272

7373
It 'Should return true when database exists and Ensure is Present' {
74-
Mock -CommandName 'Write-Verbose'
7574

7675
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Ensure 'Present'
7776

7877
$result | Should -BeTrue
7978
}
8079

8180
It 'Should return false when database does not exist and Ensure is Present' {
82-
Mock -CommandName 'Write-Verbose'
8381

8482
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'NonExistentDatabase' -Ensure 'Present'
8583

8684
$result | Should -BeFalse
8785
}
8886

8987
It 'Should return false when database exists and Ensure is Absent' {
90-
Mock -CommandName 'Write-Verbose'
9188

9289
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Ensure 'Absent'
9390

9491
$result | Should -BeFalse
9592
}
9693

9794
It 'Should return true when database does not exist and Ensure is Absent' {
98-
Mock -CommandName 'Write-Verbose'
9995

10096
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'NonExistentDatabase' -Ensure 'Absent'
10197

@@ -124,39 +120,34 @@ Describe 'Test-SqlDscDatabase' -Tag 'Public' {
124120
}
125121

126122
It 'Should return true when all properties match' {
127-
Mock -CommandName 'Write-Verbose'
128123

129124
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Ensure 'Present' -Collation 'SQL_Latin1_General_CP1_CI_AS' -CompatibilityLevel 'Version150' -RecoveryModel 'Full' -OwnerName 'sa'
130125

131126
$result | Should -BeTrue
132127
}
133128

134129
It 'Should return false when collation does not match' {
135-
Mock -CommandName 'Write-Verbose'
136130

137131
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Ensure 'Present' -Collation 'Different_Collation'
138132

139133
$result | Should -BeFalse
140134
}
141135

142136
It 'Should return false when compatibility level does not match' {
143-
Mock -CommandName 'Write-Verbose'
144137

145138
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Ensure 'Present' -CompatibilityLevel 'Version140'
146139

147140
$result | Should -BeFalse
148141
}
149142

150143
It 'Should return false when recovery model does not match' {
151-
Mock -CommandName 'Write-Verbose'
152144

153145
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Ensure 'Present' -RecoveryModel 'Simple'
154146

155147
$result | Should -BeFalse
156148
}
157149

158150
It 'Should return false when owner does not match' {
159-
Mock -CommandName 'Write-Verbose'
160151

161152
$result = Test-SqlDscDatabase -ServerObject $mockServerObject -Name 'TestDatabase' -Ensure 'Present' -OwnerName 'DifferentOwner'
162153

0 commit comments

Comments
 (0)