Tests/Admin/Set-RsDatabase.Tests.ps1
function Get-DatabaseName() { $wmiObject = New-RsConfigurationSettingObject -SqlServerInstance MSSQLSERVER return $wmiObject.DatabaseName } function Get-CredentialType() { $wmiObject = New-RsConfigurationSettingObject -SqlServerInstance MSSQLSERVER switch ($wmiObject.DatabaseLogonType) { 0 { return 'Windows' } 1 { return 'SQL' } 2 { return 'ServiceAccount' } default { throw 'Invalid Credential Type!' } } } function Get-SaCredentials() { if (-not $env:SqlSaPwd) { throw 'Environment variable SqlSaPwd is not defined!' } $password = ConvertTo-SecureString -AsPlainText -Force $env:SqlSaPwd return New-Object System.Management.Automation.PSCredential('sa', $password) } Describe "Set-RsDatabase" { Context "Changing database to a new database using ServiceAccount credentials" { $databaseServerName = 'localhost' $databaseName = 'ReportServer' + [System.DateTime]::Now.Ticks $credentialType = 'ServiceAccount' Set-RsDatabase -DatabaseServerName $databaseServerName -DatabaseName $databaseName -DatabaseCredentialType $credentialType -Confirm:$false -Verbose It "Should update database and credentials" { Get-DatabaseName | Should be $databaseName Get-CredentialType | Should be $credentialType } } Context "Changing database to a new database using SQL credentials" { $databaseServerName = 'localhost' $databaseName = 'ReportServer' + [System.DateTime]::Now.Ticks $credentialType = 'SQL' $credential = Get-SaCredentials Set-RsDatabase -DatabaseServerName $databaseServerName -DatabaseName $databaseName -DatabaseCredentialType $credentialType -DatabaseCredential $credential -Confirm:$false -Verbose It "Should update database and credentials" { Get-DatabaseName | Should be $databaseName Get-CredentialType | Should be $credentialType } } Context "Changing database to an existing database using SQL credentials" { $databaseServerName = 'localhost' $databaseName = 'ReportServer' $credentialType = 'SQL' $credential = Get-SaCredentials Set-RsDatabase -DatabaseServerName $databaseServerName -DatabaseName $databaseName -DatabaseCredentialType $credentialType -DatabaseCredential $credential -IsExistingDatabase -Confirm:$false -Verbose It "Should update database and credentials" { Get-DatabaseName | Should be $databaseName Get-CredentialType | Should be $credentialType } } Context "Changing database to an existing database using ServiceAccount credentials" { $databaseServerName = 'localhost' $databaseName = 'ReportServer' $credentialType = 'ServiceAccount' Set-RsDatabase -DatabaseServerName $databaseServerName -DatabaseName $databaseName -DatabaseCredentialType $credentialType -IsExistingDatabase -Confirm:$false -Verbose It "Should update database and credentials" { Get-DatabaseName | Should be $databaseName Get-CredentialType | Should be $credentialType } } } |