Skip to content

Commit 49d63b5

Browse files
committed
Mock New-SqlDscDataFile and New-SqlDscFileGroup in tests to avoid type conflicts with PowerShell class types
1 parent d0272db commit 49d63b5

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

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

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,36 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
9898
return $mockSourceDatabase
9999
}
100100

101+
# Mock New-SqlDscDataFile and New-SqlDscFileGroup to avoid type conflicts
102+
# between test scope and module scope for PowerShell class types.
103+
Mock -CommandName 'New-SqlDscDataFile' -MockWith {
104+
InModuleScope -ScriptBlock {
105+
param ($Name, $FileName)
106+
107+
[DatabaseFileSpec]@{
108+
Name = $Name
109+
FileName = $FileName
110+
}
111+
} -Parameters @{
112+
Name = $Name
113+
FileName = $FileName
114+
}
115+
}
116+
117+
Mock -CommandName 'New-SqlDscFileGroup' -MockWith {
118+
InModuleScope -ScriptBlock {
119+
param ($Name, $Files)
120+
121+
[DatabaseFileGroupSpec]@{
122+
Name = $Name
123+
Files = $Files
124+
}
125+
} -Parameters @{
126+
Name = $Name
127+
Files = $Files
128+
}
129+
}
130+
101131
Mock -CommandName 'New-SqlDscDatabase' -MockWith {
102132
$mockSnapshotDatabase = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.Database'
103133
$mockSnapshotDatabase | Add-Member -MemberType 'NoteProperty' -Name 'Name' -Value $Name -Force
@@ -242,6 +272,36 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
242272
return $mockDatabaseObject
243273
}
244274

275+
# Mock New-SqlDscDataFile and New-SqlDscFileGroup to avoid type conflicts
276+
# between test scope and module scope for PowerShell class types.
277+
Mock -CommandName 'New-SqlDscDataFile' -MockWith {
278+
InModuleScope -ScriptBlock {
279+
param ($Name, $FileName)
280+
281+
[DatabaseFileSpec]@{
282+
Name = $Name
283+
FileName = $FileName
284+
}
285+
} -Parameters @{
286+
Name = $Name
287+
FileName = $FileName
288+
}
289+
}
290+
291+
Mock -CommandName 'New-SqlDscFileGroup' -MockWith {
292+
InModuleScope -ScriptBlock {
293+
param ($Name, $Files)
294+
295+
[DatabaseFileGroupSpec]@{
296+
Name = $Name
297+
Files = $Files
298+
}
299+
} -Parameters @{
300+
Name = $Name
301+
Files = $Files
302+
}
303+
}
304+
245305
Mock -CommandName 'New-SqlDscDatabase' -MockWith {
246306
$mockSnapshotDatabase = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.Database'
247307
$mockSnapshotDatabase | Add-Member -MemberType 'NoteProperty' -Name 'Name' -Value $Name -Force
@@ -342,6 +402,36 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
342402
return $mockDevSourceDatabase
343403
}
344404

405+
# Mock New-SqlDscDataFile and New-SqlDscFileGroup to avoid type conflicts
406+
# between test scope and module scope for PowerShell class types.
407+
Mock -CommandName 'New-SqlDscDataFile' -MockWith {
408+
InModuleScope -ScriptBlock {
409+
param ($Name, $FileName)
410+
411+
[DatabaseFileSpec]@{
412+
Name = $Name
413+
FileName = $FileName
414+
}
415+
} -Parameters @{
416+
Name = $Name
417+
FileName = $FileName
418+
}
419+
}
420+
421+
Mock -CommandName 'New-SqlDscFileGroup' -MockWith {
422+
InModuleScope -ScriptBlock {
423+
param ($Name, $Files)
424+
425+
[DatabaseFileGroupSpec]@{
426+
Name = $Name
427+
Files = $Files
428+
}
429+
} -Parameters @{
430+
Name = $Name
431+
Files = $Files
432+
}
433+
}
434+
345435
Mock -CommandName 'New-SqlDscDatabase' -MockWith {
346436
$mockSnapshotDatabase = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.Database'
347437
$mockSnapshotDatabase | Add-Member -MemberType 'NoteProperty' -Name 'Name' -Value $Name -Force
@@ -393,6 +483,36 @@ Describe 'New-SqlDscDatabaseSnapshot' -Tag 'Public' {
393483
return $mockEvalSourceDatabase
394484
}
395485

486+
# Mock New-SqlDscDataFile and New-SqlDscFileGroup to avoid type conflicts
487+
# between test scope and module scope for PowerShell class types.
488+
Mock -CommandName 'New-SqlDscDataFile' -MockWith {
489+
InModuleScope -ScriptBlock {
490+
param ($Name, $FileName)
491+
492+
[DatabaseFileSpec]@{
493+
Name = $Name
494+
FileName = $FileName
495+
}
496+
} -Parameters @{
497+
Name = $Name
498+
FileName = $FileName
499+
}
500+
}
501+
502+
Mock -CommandName 'New-SqlDscFileGroup' -MockWith {
503+
InModuleScope -ScriptBlock {
504+
param ($Name, $Files)
505+
506+
[DatabaseFileGroupSpec]@{
507+
Name = $Name
508+
Files = $Files
509+
}
510+
} -Parameters @{
511+
Name = $Name
512+
Files = $Files
513+
}
514+
}
515+
396516
Mock -CommandName 'New-SqlDscDatabase' -MockWith {
397517
$mockSnapshotDatabase = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.Database'
398518
$mockSnapshotDatabase | Add-Member -MemberType 'NoteProperty' -Name 'Name' -Value $Name -Force

0 commit comments

Comments
 (0)