-
-
Notifications
You must be signed in to change notification settings - Fork 794
/
Watch-DbaDbLogin.Tests.ps1
66 lines (55 loc) · 3.22 KB
/
Watch-DbaDbLogin.Tests.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
$CommandName = $MyInvocation.MyCommand.Name.Replace(".Tests.ps1", "")
Write-Host -Object "Running $PSCommandPath" -ForegroundColor Cyan
. "$PSScriptRoot\constants.ps1"
Describe "$CommandName Unit Tests" -Tag 'UnitTests' {
Context "Validate parameters" {
[array]$params = ([Management.Automation.CommandMetaData]$ExecutionContext.SessionState.InvokeCommand.GetCommand($CommandName, 'Function')).Parameters.Keys
[object[]]$knownParameters = 'SqlInstance', 'Database', 'Table', 'SqlCredential', 'SqlCms', 'ServersFromFile', 'InputObject', 'EnableException'
It "Should only contain our specific parameters" {
Compare-Object -ReferenceObject $knownParameters -DifferenceObject $params | Should -BeNullOrEmpty
}
}
}
Describe "$commandname Integration Tests" -Tags "IntegrationTests" {
BeforeAll {
$random = Get-Random
$tableName1 = 'dbatoolsciwatchdblogin1'
$tableName2 = 'dbatoolsciwatchdblogin2'
$tableName3 = 'dbatoolsciwatchdblogin3'
$databaseName = "dbatoolsci_$random"
$newDb = New-DbaDatabase -SqlInstance $script:instance1 -Name $databaseName
$testFile = 'C:\temp\Servers_$random.txt'
if (Test-Path $testFile) {
Remove-Item $testFile -Force
}
$script:instance1, $script:instance2 | Out-File $testFile
$instance1 = Connect-DbaInstance -SqlInstance $script:instance1
$instance2 = Connect-DbaInstance -SqlInstance $script:instance2
$regServer1 = Add-DbaRegServer -SqlInstance $script:instance1 -ServerName $script:instance1 -Name "dbatoolsci_instance1_$random"
$regServer2 = Add-DbaRegServer -SqlInstance $script:instance1 -ServerName $script:instance2 -Name "dbatoolsci_instance2_$random"
}
AfterAll {
$null = $newDb | Remove-DbaDatabase -Confirm:$false
Get-DbaRegServer -SqlInstance $script:instance1 | Where-Object Name -match dbatoolsci | Remove-DbaRegServer -Confirm:$false
}
Context "Command actually works" {
It "ServersFromFile" {
Watch-DbaDbLogin -SqlInstance $script:instance1 -Database $databaseName -Table $tableName1 -ServersFromFile $testFile -EnableException
$result = Get-DbaDbTable -SqlInstance $script:instance1 -Database $databaseName -Table $tableName1 -IncludeSystemDBs
$result.Name | Should Be $tableName1
$result.Count | Should BeGreaterThan 0
}
It "Pipeline of instances" {
$instance1, $instance2 | Watch-DbaDbLogin -SqlInstance $script:instance1 -Database $databaseName -Table $tableName2 -EnableException
$result = Get-DbaDbTable -SqlInstance $script:instance1 -Database $databaseName -Table $tableName2 -IncludeSystemDBs
$result.Name | Should Be $tableName2
$result.Count | Should BeGreaterThan 0
}
It "ServersFromCMS" {
Watch-DbaDbLogin -SqlInstance $script:instance1 -Database $databaseName -Table $tableName3 -SqlCms $script:instance1 -EnableException
$result = Get-DbaDbTable -SqlInstance $script:instance1 -Database $databaseName -Table $tableName3 -IncludeSystemDBs
$result.Name | Should Be $tableName3
$result.Count | Should BeGreaterThan 0
}
}
}