Skip to content

Commit 8a5caae

Browse files
committed
Add parameter validation tests for Set-SqlDscDatabaseOwner to ensure correct parameter sets and mandatory parameters
1 parent 914d116 commit 8a5caae

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

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

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ Describe 'Set-SqlDscDatabaseOwner' -Tag 'Public' {
186186

187187
It 'Should throw error when SetOwner() fails' {
188188
{ Set-SqlDscDatabaseOwner -DatabaseObject $mockDatabaseObject -OwnerName 'sa' -Force } |
189-
Should -Throw -ExpectedMessage '*Simulated SetOwner() failure*'
189+
Should -Throw -ExpectedMessage '*Failed to set owner of database*'
190190
}
191191
}
192192

@@ -208,6 +208,40 @@ Describe 'Set-SqlDscDatabaseOwner' -Tag 'Public' {
208208
}
209209

210210
Context 'Parameter validation' {
211+
It 'Should have the correct parameters in parameter set ServerObjectSet' -ForEach @(
212+
@{
213+
ExpectedParameterSetName = 'ServerObjectSet'
214+
ExpectedParameters = '-ServerObject <Server> -Name <string> -OwnerName <string> [-Refresh] [-Force] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]'
215+
}
216+
) {
217+
$result = (Get-Command -Name 'Set-SqlDscDatabaseOwner').ParameterSets |
218+
Where-Object -FilterScript { $_.Name -eq $ExpectedParameterSetName } |
219+
Select-Object -Property @(
220+
@{ Name = 'ParameterSetName'; Expression = { $_.Name } },
221+
@{ Name = 'ParameterListAsString'; Expression = { $_.ToString() } }
222+
)
223+
224+
$result.ParameterSetName | Should -Be $ExpectedParameterSetName
225+
$result.ParameterListAsString | Should -Be $ExpectedParameters
226+
}
227+
228+
It 'Should have the correct parameters in parameter set DatabaseObjectSet' -ForEach @(
229+
@{
230+
ExpectedParameterSetName = 'DatabaseObjectSet'
231+
ExpectedParameters = '-DatabaseObject <Database> -OwnerName <string> [-Force] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>]'
232+
}
233+
) {
234+
$result = (Get-Command -Name 'Set-SqlDscDatabaseOwner').ParameterSets |
235+
Where-Object -FilterScript { $_.Name -eq $ExpectedParameterSetName } |
236+
Select-Object -Property @(
237+
@{ Name = 'ParameterSetName'; Expression = { $_.Name } },
238+
@{ Name = 'ParameterListAsString'; Expression = { $_.ToString() } }
239+
)
240+
241+
$result.ParameterSetName | Should -Be $ExpectedParameterSetName
242+
$result.ParameterListAsString | Should -Be $ExpectedParameters
243+
}
244+
211245
It 'Should have OwnerName as a mandatory parameter' {
212246
$command = Get-Command -Name 'Set-SqlDscDatabaseOwner'
213247
$ownerNameParam = $command.Parameters['OwnerName']

0 commit comments

Comments
 (0)