@@ -100,11 +100,10 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
100100
101101 # Mock New-SqlDscDataFile and New-SqlDscFileGroup to avoid type conflicts
102102 # between test scope and module scope for PowerShell class types.
103+ # Use InModuleScope to access the module's class types directly.
103104 Mock - CommandName ' New-SqlDscDataFile' - MockWith {
104105 InModuleScope - ScriptBlock {
105- param ($Name , $FileName )
106-
107- [DatabaseFileSpec ]@ {
106+ New-Object - TypeName ' DatabaseFileSpec' - Property @ {
108107 Name = $Name
109108 FileName = $FileName
110109 }
@@ -116,9 +115,7 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
116115
117116 Mock - CommandName ' New-SqlDscFileGroup' - MockWith {
118117 InModuleScope - ScriptBlock {
119- param ($Name , $Files )
120-
121- [DatabaseFileGroupSpec ]@ {
118+ New-Object - TypeName ' DatabaseFileGroupSpec' - Property @ {
122119 Name = $Name
123120 Files = $Files
124121 }
@@ -190,14 +187,16 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
190187 }
191188
192189 It ' Should pass FileGroup parameter when specified' {
193- # Create a mock DatabaseFileGroupSpec using InModuleScope to access internal classes
190+ # Create a mock DatabaseFileGroupSpec using InModuleScope to access internal classes.
191+ # Use New-Object to create the objects so they have the correct type
192+ # from the module's scope.
194193 $mockFileGroupSpec = InModuleScope - ScriptBlock {
195- $mockDataFileSpec = [ DatabaseFileSpec ] @ {
194+ $mockDataFileSpec = New-Object - TypeName ' DatabaseFileSpec' - Property @ {
196195 Name = ' TestData'
197196 FileName = ' C:\Snapshots\TestData.ss'
198197 }
199198
200- [ DatabaseFileGroupSpec ] @ {
199+ New-Object - TypeName ' DatabaseFileGroupSpec' - Property @ {
201200 Name = ' PRIMARY'
202201 Files = @ ($mockDataFileSpec )
203202 }
@@ -274,11 +273,10 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
274273
275274 # Mock New-SqlDscDataFile and New-SqlDscFileGroup to avoid type conflicts
276275 # between test scope and module scope for PowerShell class types.
276+ # Use InModuleScope to access the module's class types directly.
277277 Mock - CommandName ' New-SqlDscDataFile' - MockWith {
278278 InModuleScope - ScriptBlock {
279- param ($Name , $FileName )
280-
281- [DatabaseFileSpec ]@ {
279+ New-Object - TypeName ' DatabaseFileSpec' - Property @ {
282280 Name = $Name
283281 FileName = $FileName
284282 }
@@ -290,9 +288,7 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
290288
291289 Mock - CommandName ' New-SqlDscFileGroup' - MockWith {
292290 InModuleScope - ScriptBlock {
293- param ($Name , $Files )
294-
295- [DatabaseFileGroupSpec ]@ {
291+ New-Object - TypeName ' DatabaseFileGroupSpec' - Property @ {
296292 Name = $Name
297293 Files = $Files
298294 }
@@ -404,11 +400,10 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
404400
405401 # Mock New-SqlDscDataFile and New-SqlDscFileGroup to avoid type conflicts
406402 # between test scope and module scope for PowerShell class types.
403+ # Use InModuleScope to access the module's class types directly.
407404 Mock - CommandName ' New-SqlDscDataFile' - MockWith {
408405 InModuleScope - ScriptBlock {
409- param ($Name , $FileName )
410-
411- [DatabaseFileSpec ]@ {
406+ New-Object - TypeName ' DatabaseFileSpec' - Property @ {
412407 Name = $Name
413408 FileName = $FileName
414409 }
@@ -420,9 +415,7 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
420415
421416 Mock - CommandName ' New-SqlDscFileGroup' - MockWith {
422417 InModuleScope - ScriptBlock {
423- param ($Name , $Files )
424-
425- [DatabaseFileGroupSpec ]@ {
418+ New-Object - TypeName ' DatabaseFileGroupSpec' - Property @ {
426419 Name = $Name
427420 Files = $Files
428421 }
@@ -485,11 +478,10 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
485478
486479 # Mock New-SqlDscDataFile and New-SqlDscFileGroup to avoid type conflicts
487480 # between test scope and module scope for PowerShell class types.
481+ # Use InModuleScope to access the module's class types directly.
488482 Mock - CommandName ' New-SqlDscDataFile' - MockWith {
489483 InModuleScope - ScriptBlock {
490- param ($Name , $FileName )
491-
492- [DatabaseFileSpec ]@ {
484+ New-Object - TypeName ' DatabaseFileSpec' - Property @ {
493485 Name = $Name
494486 FileName = $FileName
495487 }
@@ -501,9 +493,7 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
501493
502494 Mock - CommandName ' New-SqlDscFileGroup' - MockWith {
503495 InModuleScope - ScriptBlock {
504- param ($Name , $Files )
505-
506- [DatabaseFileGroupSpec ]@ {
496+ New-Object - TypeName ' DatabaseFileGroupSpec' - Property @ {
507497 Name = $Name
508498 Files = $Files
509499 }
0 commit comments