@@ -30,16 +30,27 @@ BeforeAll {
3030
3131 # Import the SMO module to ensure real SMO types are available
3232 Import-SqlDscPreferredModule
33+
34+ $script :mockInstanceName = ' DSCSQLTEST'
35+ $script :mockComputerName = Get-ComputerName
36+
37+ $mockSqlAdministratorUserName = ' SqlAdmin' # Using computer name as NetBIOS name throw exception.
38+ $mockSqlAdministratorPassword = ConvertTo-SecureString - String ' P@ssw0rd1' - AsPlainText - Force
39+
40+ $script :mockSqlAdminCredential = [System.Management.Automation.PSCredential ]::new($mockSqlAdministratorUserName , $mockSqlAdministratorPassword )
41+
42+ $script :serverObject = Connect-SqlDscDatabaseEngine - InstanceName $script :mockInstanceName - Credential $script :mockSqlAdminCredential - ErrorAction ' Stop'
3343}
3444
3545Describe ' Add-SqlDscFileGroup' - Tag @ (' Integration_SQL2017' , ' Integration_SQL2019' , ' Integration_SQL2022' ) {
3646 Context ' When adding a FileGroup to a Database with real SMO types' {
3747 BeforeEach {
38- # Create real SMO objects
48+ # Create real SMO Database object
3949 $script :testDatabase = [Microsoft.SqlServer.Management.Smo.Database ]::new()
4050 $script :testDatabase.Name = ' TestDatabase'
41- $script :testFileGroup = [Microsoft.SqlServer.Management.Smo.FileGroup ]::new()
42- $script :testFileGroup.Name = ' TestFileGroup'
51+ $script :testDatabase.Parent = $script :serverObject
52+
53+ $script :testFileGroup = New-SqlDscFileGroup - Database $script :testDatabase - Name ' TestFileGroup' - Confirm:$false
4354 }
4455
4556 It ' Should add a FileGroup to Database successfully' {
@@ -68,10 +79,8 @@ Describe 'Add-SqlDscFileGroup' -Tag @('Integration_SQL2017', 'Integration_SQL201
6879 }
6980
7081 It ' Should add multiple FileGroups to Database' {
71- $fileGroup1 = [Microsoft.SqlServer.Management.Smo.FileGroup ]::new()
72- $fileGroup1.Name = ' FileGroup1'
73- $fileGroup2 = [Microsoft.SqlServer.Management.Smo.FileGroup ]::new()
74- $fileGroup2.Name = ' FileGroup2'
82+ $fileGroup1 = New-SqlDscFileGroup - Database $script :testDatabase - Name ' FileGroup1' - Confirm:$false
83+ $fileGroup2 = New-SqlDscFileGroup - Database $script :testDatabase - Name ' FileGroup2' - Confirm:$false
7584
7685 $initialCount = $script :testDatabase.FileGroups.Count
7786
@@ -83,10 +92,8 @@ Describe 'Add-SqlDscFileGroup' -Tag @('Integration_SQL2017', 'Integration_SQL201
8392 }
8493
8594 It ' Should add multiple FileGroups via pipeline and return them with PassThru' {
86- $fileGroup1 = [Microsoft.SqlServer.Management.Smo.FileGroup ]::new()
87- $fileGroup1.Name = ' FileGroup1'
88- $fileGroup2 = [Microsoft.SqlServer.Management.Smo.FileGroup ]::new()
89- $fileGroup2.Name = ' FileGroup2'
95+ $fileGroup1 = New-SqlDscFileGroup - Database $script :testDatabase - Name ' FileGroup1' - Confirm:$false
96+ $fileGroup2 = New-SqlDscFileGroup - Database $script :testDatabase - Name ' FileGroup2' - Confirm:$false
9097
9198 $result = @ ($fileGroup1 , $fileGroup2 ) | Add-SqlDscFileGroup - Database $script :testDatabase - PassThru
9299
@@ -100,8 +107,9 @@ Describe 'Add-SqlDscFileGroup' -Tag @('Integration_SQL2017', 'Integration_SQL201
100107 BeforeEach {
101108 $script :testDatabase = [Microsoft.SqlServer.Management.Smo.Database ]::new()
102109 $script :testDatabase.Name = ' TestDatabase'
103- $script :testFileGroup = [Microsoft.SqlServer.Management.Smo.FileGroup ]::new()
104- $script :testFileGroup.Name = ' TestFileGroup'
110+ $script :testDatabase.Parent = $script :serverObject
111+
112+ $script :testFileGroup = New-SqlDscFileGroup - Database $script :testDatabase - Name ' TestFileGroup' - Confirm:$false
105113 }
106114
107115 It ' Should update FileGroup parent reference when added to Database' {
@@ -119,20 +127,18 @@ Describe 'Add-SqlDscFileGroup' -Tag @('Integration_SQL2017', 'Integration_SQL201
119127 BeforeEach {
120128 $script :testDatabase = [Microsoft.SqlServer.Management.Smo.Database ]::new()
121129 $script :testDatabase.Name = ' TestDatabase'
130+ $script :testDatabase.Parent = $script :serverObject
122131 }
123132
124133 It ' Should create a complete FileGroup with DataFile structure' {
125134 # Create FileGroup
126- $fileGroup = [Microsoft.SqlServer.Management.Smo.FileGroup ]::new()
127- $fileGroup.Name = ' SecondaryFileGroup'
135+ $fileGroup = New-SqlDscFileGroup - Database $script :testDatabase - Name ' SecondaryFileGroup' - Confirm:$false
128136
129137 # Create DataFile
130- $dataFile = [Microsoft.SqlServer.Management.Smo.DataFile ]::new()
131- $dataFile.Name = ' SecondaryDataFile'
132- $dataFile.FileName = ' C:\Data\SecondaryDataFile.ndf'
138+ $dataFile = New-SqlDscDataFile - FileGroup $fileGroup - Name ' SecondaryDataFile' - FileName ' C:\Data\SecondaryDataFile.ndf' - Confirm:$false
133139
134140 # Add DataFile to FileGroup
135- $fileGroup.Files.Add ( $dataFile )
141+ Add-SqlDscDataFile - FileGroup $fileGroup - DataFile $dataFile
136142
137143 # Add FileGroup to Database
138144 Add-SqlDscFileGroup - Database $script :testDatabase - FileGroup $fileGroup
0 commit comments