Skip to content

Commit 0cb94cf

Browse files
Small fixes for a lot of tests (#9746)
1 parent 58a8a99 commit 0cb94cf

30 files changed

+178
-79
lines changed

tests/Backup-DbaComputerCertificate.Tests.ps1

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,35 @@ Describe "Backup-DbaComputerCertificate" -Tag "UnitTests" {
3131
}
3232

3333
Describe "Backup-DbaComputerCertificate" -Tag "IntegrationTests" {
34-
Context "Certificate is added and backed up properly" {
35-
BeforeAll {
36-
$null = Add-DbaComputerCertificate -Path "$($TestConfig.appveyorlabrepo)\certificates\localhost.crt" -Confirm:$false
37-
$certThumbprint = "29C469578D6C6211076A09CEE5C5797EEA0C2713"
38-
$backupPath = $TestConfig.Temp
39-
}
34+
BeforeAll {
35+
$PSDefaultParameterValues['*-Dba*:EnableException'] = $true
4036

41-
It "Returns the proper results" {
37+
$certThumbprint = "29C469578D6C6211076A09CEE5C5797EEA0C2713"
38+
$certPath = "$($TestConfig.appveyorlabrepo)\certificates\localhost.crt"
39+
$backupPath = $TestConfig.Temp
40+
41+
$null = Add-DbaComputerCertificate -Path $certPath
42+
43+
$PSDefaultParameterValues.Remove('*-Dba*:EnableException')
44+
}
45+
46+
AfterAll {
47+
$PSDefaultParameterValues['*-Dba*:EnableException'] = $true
48+
49+
$null = Remove-DbaComputerCertificate -Thumbprint $certThumbprint
50+
}
51+
52+
Context "Certificate is backed up properly" {
53+
BeforeAll {
4254
$result = Get-DbaComputerCertificate -Thumbprint $certThumbprint | Backup-DbaComputerCertificate -Path $backupPath
43-
$result.Name | Should -Match "$certThumbprint.cer"
4455
}
4556

4657
AfterAll {
47-
$null = Remove-DbaComputerCertificate -Thumbprint $certThumbprint -Confirm:$false
58+
Get-ChildItem -Path $result.FullName | Remove-Item
59+
}
60+
61+
It "Returns the proper results" {
62+
$result.Name | Should -Match "$certThumbprint.cer"
4863
}
4964
}
5065
}

tests/Backup-DbaDbCertificate.Tests.ps1

Lines changed: 84 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -40,58 +40,112 @@ Describe "Backup-DbaDbCertificate" -Tag "UnitTests" {
4040

4141
Describe "Backup-DbaDbCertificate" -Tag "IntegrationTests" {
4242
BeforeAll {
43+
$PSDefaultParameterValues['*-Dba*:EnableException'] = $true
44+
4345
$random = Get-Random
44-
$db1Name = "dbatoolscli_$random"
45-
$db1 = New-DbaDatabase -SqlInstance $TestConfig.instance1 -Name $db1Name
46+
$db1Name = "dbatoolscli_db1_$random"
47+
$db2Name = "dbatoolscli_db2_$random"
4648
$pw = ConvertTo-SecureString -String "GoodPass1234!" -AsPlainText -Force
47-
if (-not (Get-DbaDbMasterKey -SqlInstance $TestConfig.instance1 -Database $db1Name)) {
48-
$masterkey = New-DbaDbMasterKey -SqlInstance $TestConfig.instance1 -Database $db1Name -Password $pw -Confirm:$false
49-
}
5049

51-
$cert = New-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db1Name -Confirm:$false -Password $pw -Name dbatoolscli_cert1_$random
52-
$cert2 = New-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db1Name -Confirm:$false -Password $pw -Name dbatoolscli_cert2_$random
50+
$db1 = New-DbaDatabase -SqlInstance $TestConfig.instance1 -Name $db1Name
51+
$null = New-DbaDbMasterKey -SqlInstance $TestConfig.instance1 -Database $db1Name -Password $pw
52+
53+
$db2 = New-DbaDatabase -SqlInstance $TestConfig.instance1 -Name $db2Name
54+
$null = New-DbaDbMasterKey -SqlInstance $TestConfig.instance1 -Database $db2Name -Password $pw
55+
56+
$cert1 = New-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db1Name -Password $pw -Name dbatoolscli_cert1_$random
57+
$cert2 = New-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db1Name -Password $pw -Name dbatoolscli_cert2_$random
58+
$cert3 = New-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db2Name -Password $pw -Name dbatoolscli_cert3_$random
59+
60+
$PSDefaultParameterValues.Remove('*-Dba*:EnableException')
5361
}
5462
AfterAll {
55-
Remove-DbaDatabase -SqlInstance $TestConfig.instance1 -Database $db1Name -Confirm:$false
63+
$PSDefaultParameterValues['*-Dba*:EnableException'] = $true
64+
65+
Remove-DbaDatabase -SqlInstance $TestConfig.instance1 -Database $db1Name, $db2Name
5666
}
5767

58-
Context "Can create and backup a database certificate" {
59-
It "backs up the db cert" {
60-
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Certificate $cert.Name -Database $db1Name -EncryptionPassword $pw -DecryptionPassword $pw
61-
$null = Get-ChildItem -Path $results.Path -ErrorAction Ignore | Remove-Item -Confirm:$false -ErrorAction Ignore
62-
$results.Certificate | Should -Be $cert.Name
68+
Context "Can backup a database certificate" {
69+
BeforeAll {
70+
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db1Name -Certificate $cert1.Name -EncryptionPassword $pw -DecryptionPassword $pw
71+
}
72+
73+
AfterAll {
74+
Remove-Item -Path $results.Path
75+
Remove-Item -Path $results.Key
76+
}
77+
78+
It "Returns results with proper data" {
79+
$results.Certificate | Should -Be $cert1.Name
6380
$results.Status | Should -Match "Success"
64-
$results.DatabaseID | Should -Be (Get-DbaDatabase -SqlInstance $TestConfig.instance1 -Database $db1Name).ID
81+
$results.DatabaseID | Should -Be $db1.ID
82+
}
83+
}
84+
85+
Context "Can backup a database certificate with a filename (see #9485)" {
86+
BeforeAll {
87+
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db1Name -Certificate $cert1.Name -EncryptionPassword $pw -DecryptionPassword $pw -FileBaseName "dbatoolscli_cert1_$random"
88+
}
89+
90+
AfterAll {
91+
Remove-Item -Path $results.Path
92+
Remove-Item -Path $results.Key
6593
}
6694

67-
It "backs up the db cert with a filename (see #9485)" {
68-
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Certificate $cert.Name -Database $db1Name -EncryptionPassword $pw -DecryptionPassword $pw -FileBaseName "dbatoolscli_cert1_$random"
69-
$results.Certificate | Should -Be $cert.Name
95+
It "Returns results with proper data" {
96+
$results.Certificate | Should -Be $cert1.Name
7097
$results.Status | Should -Match "Success"
71-
$results.DatabaseID | Should -Be (Get-DbaDatabase -SqlInstance $TestConfig.instance1 -Database $db1Name).ID
98+
$results.DatabaseID | Should -Be $db1.ID
7299
[IO.Path]::GetFileNameWithoutExtension($results.Path) | Should -Be "dbatoolscli_cert1_$random"
73-
$null = Get-ChildItem -Path $results.Path -ErrorAction Ignore | Remove-Item -Confirm:$false -ErrorAction Ignore
74100
}
101+
}
75102

76-
It "warns the caller if the cert cannot be found" {
103+
Context "Warns the caller if the cert cannot be found" {
104+
BeforeAll {
77105
$invalidDBCertName = "dbatoolscli_invalidCertName"
78106
$invalidDBCertName2 = "dbatoolscli_invalidCertName2"
79-
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Certificate $invalidDBCertName, $invalidDBCertName2, $cert2.Name -Database $db1Name -EncryptionPassword $pw -DecryptionPassword $pw -WarningVariable warnVariable 3> $null
80-
$null = Get-ChildItem -Path $results.Path -ErrorAction Ignore | Remove-Item -Confirm:$false -ErrorAction Ignore
81-
$warnVariable | Should -BeLike "*Database certificate(s) * not found*"
107+
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db1Name -Certificate $invalidDBCertName, $invalidDBCertName2, $cert2.Name -EncryptionPassword $pw -DecryptionPassword $pw -WarningAction SilentlyContinue
108+
}
109+
110+
AfterAll {
111+
Remove-Item -Path $results.Path
112+
Remove-Item -Path $results.Key
82113
}
83114

84-
It "backs up all db certs for a database" -Skip {
115+
It "Does warn" {
116+
$WarnVar | Should -BeLike "*Database certificate(s) * not found*"
117+
}
118+
}
119+
120+
Context "Backs up all db certs for a database" {
121+
BeforeAll {
85122
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -Database $db1Name -EncryptionPassword $pw -DecryptionPassword $pw
86-
$null = Get-ChildItem -Path $results.Path -ErrorAction Ignore | Remove-Item -Confirm:$false -ErrorAction Ignore
87-
$results.length | Should -Be 2
88-
$results.Certificate | Should -Be $cert.Name, $cert2.Name
89123
}
90124

91-
It "backs up all db certs for an instance" -Skip {
92-
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -EncryptionPassword $pw
93-
$null = Get-ChildItem -Path $results.Path -ErrorAction Ignore | Remove-Item -Confirm:$false -ErrorAction Ignore
125+
AfterAll {
126+
Remove-Item -Path $results.Path
127+
Remove-Item -Path $results.Key
94128
}
95129

130+
It "Returns results with proper data" {
131+
$results | Should -HaveCount 2
132+
$results.Certificate | Should -Be $cert1.Name, $cert2.Name
133+
}
134+
}
135+
136+
Context "Backs up all db certs for an instance" {
137+
BeforeAll {
138+
$results = Backup-DbaDbCertificate -SqlInstance $TestConfig.instance1 -EncryptionPassword $pw -DecryptionPassword $pw
139+
}
140+
141+
AfterAll {
142+
Remove-Item -Path $results.Path
143+
Remove-Item -Path $results.Key
144+
}
145+
146+
It "Returns results with proper data" {
147+
$results | Should -HaveCount 3
148+
$results.Certificate | Should -Be $cert1.Name, $cert2.Name, $cert3.Name
149+
}
96150
}
97151
}

tests/Connect-DbaInstance.Tests.ps1

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,11 @@ Describe "$commandname Integration Tests" -Tags "IntegrationTests" {
209209

210210
It "clones when using Backup-DabInstace" {
211211
$server = Connect-DbaInstance -SqlInstance $TestConfig.instance1 -Database tempdb
212-
$null = Backup-DbaDatabase -SqlInstance $server -Database msdb
213-
$null = Backup-DbaDatabase -SqlInstance $server -Database msdb -WarningVariable warn
212+
$results = Backup-DbaDatabase -SqlInstance $server -Database msdb
213+
Remove-Item -Path $results.FullName
214+
$results = Backup-DbaDatabase -SqlInstance $server -Database msdb -WarningVariable warn
214215
$warn | Should -BeNullOrEmpty
216+
Remove-Item -Path $results.FullName
215217
}
216218
}
217219

tests/Copy-DbaDatabase.Tests.ps1

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,12 @@ Describe "$commandname Integration Tests" -Tag "IntegrationTests" {
120120
}
121121

122122
It "copies a database successfully using backup history" {
123-
$null = Backup-DbaDatabase -SqlInstance $TestConfig.instance2 -Database $backuprestoredb -BackupDirectory $NetworkPath
123+
$results = Backup-DbaDatabase -SqlInstance $TestConfig.instance2 -Database $backuprestoredb -BackupDirectory $NetworkPath
124+
$backupFile = $results.FullName
124125
$results = Copy-DbaDatabase -Source $TestConfig.instance2 -Destination $TestConfig.instance3 -Database $backuprestoredb -BackupRestore -UseLastBackup
125126
$results.Name | Should -Be $backuprestoredb
126127
$results.Status | Should -Be "Successful"
128+
Remove-Item -Path $backupFile
127129
}
128130

129131
It "retains its name, recovery model, and status." {
@@ -141,9 +143,17 @@ Describe "$commandname Integration Tests" -Tag "IntegrationTests" {
141143
Get-DbaProcess -SqlInstance $TestConfig.instance2, $TestConfig.instance3 -Program 'dbatools PowerShell module - dbatools.io' | Stop-DbaProcess -WarningAction SilentlyContinue
142144
Remove-DbaDatabase -Confirm:$false -SqlInstance $TestConfig.instance3 -Database $backuprestoredb
143145
#Pre-stage the restore
144-
$null = Backup-DbaDatabase -SqlInstance $TestConfig.instance2 -Database $backuprestoredb -BackupDirectory $NetworkPath | Restore-DbaDatabase -SqlInstance $TestConfig.instance3 -DatabaseName $backuprestoredb -NoRecovery
146+
$backupPaths = @( )
147+
$results = Backup-DbaDatabase -SqlInstance $TestConfig.instance2 -Database $backuprestoredb -BackupDirectory $NetworkPath
148+
$backupPaths += $results.FullName
149+
$results | Restore-DbaDatabase -SqlInstance $TestConfig.instance3 -DatabaseName $backuprestoredb -NoRecovery
145150
#Run diff now
146-
$null = Backup-DbaDatabase -SqlInstance $TestConfig.instance2 -Database $backuprestoredb -BackupDirectory $NetworkPath -Type Diff
151+
$results = Backup-DbaDatabase -SqlInstance $TestConfig.instance2 -Database $backuprestoredb -BackupDirectory $NetworkPath -Type Diff
152+
$backupPaths += $results.FullName
153+
}
154+
155+
AfterAll {
156+
$backupPaths | Select-Object -Unique | Remove-Item
147157
}
148158

149159
It "continues the restore over existing database using backup history" -Skip {

tests/Copy-DbaLogin.Tests.ps1

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Describe "$commandname Integration Tests" -Tags "IntegrationTests" {
3131
}
3232
$logins = "claudio", "port", "tester", "tester_new"
3333
$dropTableQuery = "IF EXISTS (SELECT * FROM sys.tables WHERE name = 'tester_table') DROP TABLE tester_table"
34-
foreach ($instance in $instances) {
34+
foreach ($instance in $TestConfig.instance1, $TestConfig.instance2) {
3535
foreach ($login in $logins) {
3636
Initialize-TestLogin -Instance $instance -Login $login
3737
}
@@ -56,12 +56,14 @@ Describe "$commandname Integration Tests" -Tags "IntegrationTests" {
5656
# cleanup everything
5757
$logins = "claudio", "port", "tester", "tester_new"
5858

59-
foreach ($instance in $instances) {
59+
foreach ($instance in $TestConfig.instance1, $TestConfig.instance2) {
6060
foreach ($login in $logins) {
6161
Initialize-TestLogin -Instance $instance -Login $login
6262
}
6363
$null = Invoke-DbaQuery -SqlInstance $instance -Database tempdb -Query $dropTableQuery
6464
}
65+
66+
$null = Remove-DbaLogin -SqlInstance $TestConfig.instance1, $TestConfig.instance2 -Login 'claudio', 'port', 'tester'
6567
}
6668

6769
Context "Copy login with the same properties." {

tests/Export-DbaBinaryFile.Tests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Describe "$commandname Integration Tests" -Tags "IntegrationTests" {
2323
AfterEach {
2424
try {
2525
$null = $db.Query("DROP TABLE dbo.BunchOFilezz")
26-
$null = Get-ChildItem -Path C:\temp\exports -File | Remove-Item -Confirm:$false -Force
26+
Remove-Item -Path C:\temp\exports -Recurse
2727
} catch {
2828
$null = 1
2929
}

tests/Export-DbaRegServer.Tests.ps1

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Describe "$CommandName Integration Tests" -Tag "IntegrationTests" {
3838
$newServer3 = Add-DbaRegServer -SqlInstance $TestConfig.instance2 -ServerName $srvName3 -Name $regSrvName3 -Description $regSrvDesc3
3939

4040
$random = Get-Random
41-
$newDirectory = "C:\temp-$random"
41+
$newDirectory = "C:\temp\$random"
4242
}
4343
AfterEach {
4444
Get-DbaRegServer -SqlInstance $TestConfig.instance2 | Where-Object Name -Match dbatoolsci | Remove-DbaRegServer -Confirm:$false
@@ -55,14 +55,14 @@ Describe "$CommandName Integration Tests" -Tag "IntegrationTests" {
5555
}
5656

5757
It "should create a specific xml file when using Path" {
58-
$results2 = $newGroup2 | Export-DbaRegServer -Path C:\temp
58+
$results2 = $newGroup2 | Export-DbaRegServer -Path $newDirectory
5959
$results2 -is [System.IO.FileInfo] | Should -Be $true
6060
$results2.FullName | Should -match 'C\:\\temp'
6161
Get-Content -Path $results2 -Raw | Should -Match $group2
6262
}
6363

6464
It "creates an importable xml file" {
65-
$results3 = $newServer3 | Export-DbaRegServer -Path C:\temp
65+
$results3 = $newServer3 | Export-DbaRegServer -Path $newDirectory
6666
Get-DbaRegServer -SqlInstance $TestConfig.instance2 | Where-Object Name -Match dbatoolsci | Remove-DbaRegServer -Confirm:$false
6767
Get-DbaRegServerGroup -SqlInstance $TestConfig.instance2 | Where-Object Name -Match dbatoolsci | Remove-DbaRegServerGroup -Confirm:$false
6868
$results4 = Import-DbaRegServer -SqlInstance $TestConfig.instance2 -Path $results3
@@ -71,21 +71,21 @@ Describe "$CommandName Integration Tests" -Tag "IntegrationTests" {
7171
}
7272

7373
It "Create an xml file using FilePath" {
74-
$outputFileName = "C:\temp\dbatoolsci-regsrvr-export-$random.xml"
74+
$outputFileName = "$newDirectory\dbatoolsci-regsrvr-export-$random.xml"
7575
$results = Export-DbaRegServer -SqlInstance $TestConfig.instance2 -FilePath $outputFileName
7676
$results -is [System.IO.FileInfo] | Should -Be $true
7777
$results.FullName | Should -Be $outputFileName
7878
}
7979

8080
It "Create a regsrvr file using the FilePath alias OutFile" {
81-
$outputFileName = "C:\temp\dbatoolsci-regsrvr-export-$random.regsrvr"
81+
$outputFileName = "$newDirectory\dbatoolsci-regsrvr-export-$random.regsrvr"
8282
$results = Export-DbaRegServer -SqlInstance $TestConfig.instance2 -OutFile $outputFileName
8383
$results -is [System.IO.FileInfo] | Should -Be $true
8484
$results.FullName | Should -Be $outputFileName
8585
}
8686

8787
It "Try to create an invalid file using FilePath" {
88-
$outputFileName = "C:\temp\dbatoolsci-regsrvr-export-$random.txt"
88+
$outputFileName = "$newDirectory\dbatoolsci-regsrvr-export-$random.txt"
8989
$results = Export-DbaRegServer -SqlInstance $TestConfig.instance2 -FilePath $outputFileName
9090
$results.length | Should -Be 0
9191
}
@@ -98,7 +98,7 @@ Describe "$CommandName Integration Tests" -Tag "IntegrationTests" {
9898
}
9999

100100
It "Ensure the Overwrite param is working" {
101-
$outputFileName = "C:\temp\dbatoolsci-regsrvr-export-$random.xml"
101+
$outputFileName = "$newDirectory\dbatoolsci-regsrvr-export-$random.xml"
102102
$results = Export-DbaRegServer -SqlInstance $TestConfig.instance2 -FilePath $outputFileName
103103
$results -is [System.IO.FileInfo] | Should -Be $true
104104
$results.FullName | Should -Be $outputFileName
@@ -114,7 +114,7 @@ Describe "$CommandName Integration Tests" -Tag "IntegrationTests" {
114114
}
115115

116116
It "Test with the Group param" {
117-
$outputFileName = "C:\temp\dbatoolsci-regsrvr-export-$random.xml"
117+
$outputFileName = "$newDirectory\dbatoolsci-regsrvr-export-$random.xml"
118118
$results = Export-DbaRegServer -SqlInstance $TestConfig.instance2 -FilePath $outputFileName -Group $group
119119
$results -is [System.IO.FileInfo] | Should -Be $true
120120
$results.FullName | Should -Be $outputFileName
@@ -126,7 +126,7 @@ Describe "$CommandName Integration Tests" -Tag "IntegrationTests" {
126126
}
127127

128128
It "Test with the Group param and multiple group names" {
129-
$outputFileName = "C:\temp\dbatoolsci-regsrvr-export-$random.xml"
129+
$outputFileName = "$newDirectory\dbatoolsci-regsrvr-export-$random.xml"
130130
$results = Export-DbaRegServer -SqlInstance $TestConfig.instance2 -FilePath $outputFileName -Group @($group, $group2)
131131
$results.length | Should -Be 2
132132

tests/Export-DbaScript.Tests.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ Describe "$commandname Integration Tests" -Tags "IntegrationTests" {
5151
$null = Get-DbaDbTable -SqlInstance $TestConfig.instance2 -Database msdb | Select-Object -First 1 | Export-DbaScript -NoPrefix -FilePath C:\temp\msdb.txt -Append
5252
$linecount3 = (Get-Content C:\temp\msdb.txt).Count
5353
$linecount1 | Should -Not -Be $linecount3
54+
Remove-Item -Path C:\temp\msdb.txt
5455
}
5556
}
5657
}

tests/Export-DbaSysDbUserObject.Tests.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ Describe "$commandname Integration Tests" -Tags "IntegrationTests" {
7070
Context "works as expected with filename" {
7171
$null = Export-DbaSysDbUserObject -SqlInstance $TestConfig.instance2 -FilePath "C:\Temp\objects_$random.sql"
7272
$file = get-content "C:\Temp\objects_$random.sql" | Out-String
73+
Remove-Item -Path "C:\Temp\objects_$random.sql"
7374
It "should export text matching table name '$tableName'" {
7475
$file -match $tableName | Should be $true
7576
}

0 commit comments

Comments
 (0)